Commit 8d58f277 authored by Edwise's avatar Edwise 🍷

test

parents

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

# Created by .ignore support plugin (hsz.mobi)
### Node template
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
.DS_Store
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "pwa-chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
}
]
}
\ No newline at end of file
{
"liveServer.settings.port": 5501
}
\ No newline at end of file
## 一、工程目录 http://gitlab2.dui88.com/laoqifeng/zeroing-libs
切换`dev`分支,在`dev`分支新增修改
## 二、文件路径及大概用途
- 1、`dist`文件下即为打包后的json用于发布版本使用
- 2、src为代码路径
* 1、`src/custom` 为所有自定义模块的源码,也是新增或修改的代码路径
* 2、`src/custom` 路径下每一个自定义模块单独一个项目名字文件夹
- 3、通用代码脚本
* 1、`meta.json`文件
- 1、`name`为项目名字
- 2、`desc` 为项目描述
- 3、`props` 为配置属性,提供对外可配置内容
- 4、`assets` 为资源加载属性,加载路径需跟`uuid`相匹配,注意对应类型
- 5、`events` 为事件属性,与外界用事件传递消息,注意每个模块的时间名
* 2、`debug文件`
- 1、该文件是本地运行使用文件
- 2、可修改`app.js`文件里的事件名,而去执行对应的模块代码
* 3、`src/custom/src`为每个模块的项目代码
- 1、`index.ts`为初始化脚本可以通用
- 2、`props.ts`为获取meta.json文件中的配置使用,可通用的脚本
- 3、`game`文件为自身项目的逻辑代码
## 三、本地运行
- 1、安装本地启动服务`game-cli` 地址:http://cf.dui88.com/display/dbyw/game-cli
- 2、运行http服务,执行src/custom下对应的自定义模块下的`debug`文件
- 3、`yarn build-custom -s 模块名 -w` 为保存档次代码修改也为打包指令
- 4、执行保存指令后在浏览器刷新图标处右键选择`清空缓存`并硬性重新加载,这样可以 保证运行最新修改的代码(劳工手工传授)
## 四、代码执行过程
- 1、入口为`app.js` 读取meta.json文件下的配置,加载对应资源,添加自定义模块
- 2、配置加载成功后使用引擎api将对应模块添加到显示到显示舞台0
- 3、而后执行src/custom/对应模块`/src/index.ts` 初始化项目所需要的东西
- 4、而后执行props.ts获取meta.json中的props配置
- 5、而后创建项目逻辑入口脚本实例(例如GameWrapper)
- 6、而后即为对应模块逻辑代码
/**
* Created by rockyl on 2019-12-16.
*/
(async function () {
const customId = engine.queryParams.id;
console.log(customId);
let customModule = await fetch(`../dist/customs/${customId}.json`);
customModule = await customModule.json();
console.log(customModule);
launchWithCustomModule(customModule);
})();
function launchWithCustomModule(customModule) {
engine.globalEvent.addEventListener('update-game-status', (e) => {
console.log(e.type, e.data);
});
engine.registerCustomCodeModule(customModule);
engine.launchWithConfig({
options: {
entrySceneView: 'entry',
},
assets: [],
customs: [customModule],
views: [{
name: 'entry',
type: 'node',
}],
}, null, function () {
engine.addCustomModule(customModule.id, engine.gameStage.sceneContainer.getChildAt(0));
setTimeout(() => {
engine.globalEvent.dispatchEvent('start-game', {level: 1});
}, 500);
});
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Custom Emulator</title>
<meta name="viewport"
content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="full-screen" content="true"/>
<meta name="screen-orientation" content="portrait"/>
<meta name="x5-fullscreen" content="true"/>
<meta name="360-fullscreen" content="true"/>
<style>
html,
body {
padding: 0;
margin: 0;
border: 0;
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
background-color: transparent;
}
</style>
</head>
<body>
<div id="game-container" style="line-height:0;font-size:0"></div>
<script src="//res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
<script src="http://localhost:4002/debug/engine.js"></script>
<script src="http://localhost:4003/debug/engine-svga.js"></script>
<!--<script src="//yun.duiba.com.cn/editor/zeroing/libs/engine.9a9dbfda4cb2dd5508ecddfe3d95dfd88063f7b5.js"></script>-->
<script src="app.js"></script>
<script>
</script>
</body>
\ No newline at end of file
This diff is collapsed.
{
"name": "大转盘",
"desc": "大转盘模块",
"props": {
"count": {
"alias": "奖品总个数",
"type": "number",
"default": ""
},
"result": {
"alias": "第几个中奖奖品(从1开始数)",
"type": "number",
"default": ""
},
"angleArr": {
"alias": "当转盘为不规整转盘时每个奖品所对应的角度数组(角度制,用逗号隔开)",
"type": "string",
"default": ""
},
"offsetAngle": {
"alias": "不规整转盘的第一个奖品的偏移角度(角度制,默认0)",
"type": "number",
"default": "0"
}
},
"assets": [
{
"name": "转盘图片",
"url": "//yun.duiba.com.cn/aurora/assets/b16ef9fb49d11ea7e27cba607b8496b39e1fb729.png",
"uuid": "2fcebfca-e31b-49b2-9af1-266607c23418",
"ext": ".png"
},
{
"name": "指针__m",
"url": "//yun.duiba.com.cn/aurora/assets/49e2758709229852f29cb43f2116f6365bdf55ff.png",
"uuid": "56f1a88b-dd8d-4c38-853a-cf2be7525a14",
"ext": ".png"
}
],
"events": {
"in": {
"pictures-start": {
"alias": "开始转盘"
},
"pictures-set": {
"alias": "设置result属性",
"data": {
"setResult": "第几个中奖奖品(从1开始数)"
}
},
"pictures-stop": {
"alias": "停止转盘旋转"
}
},
"out": {
"pictures-end": {
"alias": "结束"
}
}
},
"id": "big-turntable",
"code": "(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('tslib')) :\n\ttypeof define === 'function' && define.amd ? define(['tslib'], factory) :\n\t(global = global || self, global['big-turntable'] = factory(global.tslib));\n}(this, (function (tslib) { 'use strict';\n\n\tvar props = {};\r\n\tfunction prepareProps() {\r\n\t var metaProps = getProps();\r\n\t engine.injectProp(props, metaProps);\r\n\t}\r\n\tfunction injectProps(p) {\r\n\t engine.injectProp(props, p);\r\n\t}\r\n\t//# sourceMappingURL=props.js.map\n\n\tfunction getTexture(uuid) {\r\n\t return engine.Texture.from(getAssetByUUID(uuid).uuid);\r\n\t}\r\n\tfunction getPoint(r, ox, oy, count) {\r\n\t var p = [];\r\n\t var radians = (Math.PI / 180) * Math.round(360 / count);\r\n\t for (var i = 2; i <= count + 1; i++) {\r\n\t var x = ox + r * Math.sin(radians * i + Math.PI / 180 * 45);\r\n\t var y = oy + r * Math.cos(radians * i + Math.PI / 180 * 45);\r\n\t p.unshift({ x: x, y: y });\r\n\t }\r\n\t return p;\r\n\t}\n\n\tvar TestView = (function (_super) {\r\n\t tslib.__extends(TestView, _super);\r\n\t function TestView() {\r\n\t var _this = _super.call(this) || this;\r\n\t _this.turntableImage = null;\r\n\t _this.pointerImage = null;\r\n\t _this.count = 0;\r\n\t _this.result = 0;\r\n\t _this.rect = null;\r\n\t _this.angleArr = [];\r\n\t _this.offsetAngle = 0;\r\n\t _this.addEventListener(engine.Event.ADDED_TO_STAGE, _this.setup, _this);\r\n\t return _this;\r\n\t }\r\n\t TestView.prototype.setup = function () {\r\n\t var that = this;\r\n\t that.removeEventListener(engine.Event.ADDED_TO_STAGE, this.setup, this);\r\n\t that.turntableImage = new engine.Image(getTexture(\"2fcebfca-e31b-49b2-9af1-266607c23418\"));\r\n\t that.addChild(that.turntableImage);\r\n\t that.pointerImage = new engine.Image(getTexture(\"56f1a88b-dd8d-4c38-853a-cf2be7525a14\"));\r\n\t that.addChild(that.pointerImage);\r\n\t that.initGame();\r\n\t that.addEvnt();\r\n\t var p = getPoint(355, that.turntableImage.x, that.turntableImage.y, 8);\r\n\t for (var i = 0; i < p.length; i++) {\r\n\t var a = new engine.Shape();\r\n\t a.beginFill(0x66ccff);\r\n\t a.drawRect(-30, -30, 60, 60);\r\n\t a.endFill();\r\n\t this.addChild(a);\r\n\t a.x = p[i].x + that.turntableImage.x;\r\n\t a.y = p[i].y;\r\n\t }\r\n\t };\r\n\t TestView.prototype.addEvnt = function () {\r\n\t engine.globalEvent.addEventListener(\"pictures-start\", this.startRotate, this);\r\n\t engine.globalEvent.addEventListener(\"pictures-stop\", this.stopRotate, this);\r\n\t };\r\n\t TestView.prototype.set = function () {\r\n\t this.result = props.setResult;\r\n\t };\r\n\t TestView.prototype.startRotate = function () {\r\n\t var that = this;\r\n\t var resultAngle = 0;\r\n\t var angle = 0;\r\n\t if (that.angleArr.length <= 0) {\r\n\t var unitAngle = 360 / that.count;\r\n\t resultAngle = that.result * unitAngle;\r\n\t angle = 360 - resultAngle + unitAngle * 0.5 - that.offsetAngle;\r\n\t }\r\n\t else {\r\n\t var baseAngle = 0;\r\n\t for (var i = 0; i < that.result; i++) {\r\n\t if (i == (that.result - 1)) {\r\n\t baseAngle = that.angleArr[i] * 0.5;\r\n\t }\r\n\t else {\r\n\t baseAngle = that.angleArr[i];\r\n\t }\r\n\t resultAngle += baseAngle;\r\n\t }\r\n\t angle = 360 - resultAngle - that.offsetAngle;\r\n\t }\r\n\t var targetAngle = angle + 360 * 8;\r\n\t engine.Tween.get(that.turntableImage).to({ rotation: targetAngle }, 5000, engine.Ease.quadOut).call(function () {\r\n\t engine.globalEvent.dispatchEvent(\"pictures-end\");\r\n\t });\r\n\t };\r\n\t TestView.prototype.stopRotate = function () {\r\n\t engine.Tween.removeTweens(this.turntableImage);\r\n\t };\r\n\t TestView.prototype.initGame = function () {\r\n\t var that = this;\r\n\t that.count = props.count;\r\n\t that.result = props.result;\r\n\t that.offsetAngle = props.offsetAngle;\r\n\t that.turntableImage.x = engine.gameStage.width - that.turntableImage.width >> 1;\r\n\t that.turntableImage.y = engine.gameStage.height - that.turntableImage.height >> 1;\r\n\t that.pointerImage.x = engine.gameStage.width - that.pointerImage.width >> 1;\r\n\t that.pointerImage.y = engine.gameStage.height - that.pointerImage.height >> 1;\r\n\t that.turntableImage.anchorX = that.turntableImage.width >> 1;\r\n\t that.turntableImage.anchorY = that.turntableImage.height >> 1;\r\n\t that.pointerImage.anchorX = that.pointerImage.width >> 1;\r\n\t that.pointerImage.anchorY = that.pointerImage.height >> 1;\r\n\t that.setAngleArr();\r\n\t };\r\n\t TestView.prototype.setAngleArr = function () {\r\n\t if (props.angleArr) {\r\n\t var tempArr = props.angleArr.split(',');\r\n\t for (var i = 0; i < tempArr.length; i++) {\r\n\t this.angleArr.push(parseFloat(tempArr[i]));\r\n\t }\r\n\t }\r\n\t };\r\n\t return TestView;\r\n\t}(engine.Container));\r\n\t//# sourceMappingURL=TestView.js.map\n\n\tvar GameWrapper = (function (_super) {\r\n\t tslib.__extends(GameWrapper, _super);\r\n\t function GameWrapper() {\r\n\t var _this = _super.call(this) || this;\r\n\t engine.globalEvent.addEventListener(\"pictures-set\", _this.set, _this);\r\n\t var testView = _this._testView = new TestView();\r\n\t _this.addChild(testView);\r\n\t return _this;\r\n\t }\r\n\t GameWrapper.prototype.set = function (event) {\r\n\t injectProps(event.data);\r\n\t this._testView.set();\r\n\t };\r\n\t GameWrapper.prototype.start = function (event) {\r\n\t injectProps(event.data);\r\n\t };\r\n\t GameWrapper.prototype.stop = function (event) {\r\n\t };\r\n\t return GameWrapper;\r\n\t}(engine.Container));\r\n\t//# sourceMappingURL=GameWrapper.js.map\n\n\tfunction index (props) {\r\n\t prepareProps();\r\n\t injectProps(props);\r\n\t var instance = new GameWrapper();\r\n\t return instance;\r\n\t}\r\n\t//# sourceMappingURL=index.js.map\n\n\treturn index;\n\n})));\n"
}
{
"name": "套圈",
"desc": "套圈模块",
"props": {
"ferruleModuleGlobalPosition": {
"alias": "套圈模块的位置",
"type": "array<number>",
"default": "0,0"
},
"ferruleModuleWidthHeight": {
"alias": "套圈模块的宽高",
"type": "array<number>",
"default": "750,450"
}
},
"assets": [
{
"name": "圈",
"url": "//yun.duiba.com.cn/aurora/assets/668313c9b296603cbfd24f92c3683c41df0aa1e9.png",
"uuid": "c1fc9984-900f-44e0-87e5-128e7ccdfb62",
"ext": ".png"
},
{
"name": "礼盒",
"url": "//yun.duiba.com.cn/aurora/assets/3b13cb2a324c05e3bef2c27f1fd27b5fe49a0ea3.png",
"uuid": "e3ee8791-880f-4408-9f31-2f5faa75d044",
"ext": ".png"
},
{
"name": "套中动效",
"url": "//yun.duiba.com.cn/aurora/assets/8b650dd07a82a1357f0572e1201a9834e8b7d302.svga",
"uuid": "5e569c9c-a1e4-44df-83eb-9249e00e228b",
"ext": ".svga"
}
],
"events": {
"in": {
"circle-game-start": {
"alias": "开始"
},
"circle-game-init": {
"alias": "初始化"
}
},
"out": {
"circle-game-end": {
"alias": "套圈完毕",
"data": {
"reason": "套圈结束,执行抽奖"
}
}
}
},
"id": "circle",
"code": "(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('tslib')) :\n\ttypeof define === 'function' && define.amd ? define(['tslib'], factory) :\n\t(global = global || self, global.circle = factory(global.tslib));\n}(this, (function (tslib) { 'use strict';\n\n\tfunction getTexture(uuid) {\r\n\t return engine.Texture.from(getAssetByUUID(uuid).uuid);\r\n\t}\r\n\tfunction getTextureByName(name) {\r\n\t console.log('name', engine.getAssetByName(name));\r\n\t return getTexture(engine.getAssetByName(name).uuid);\r\n\t}\r\n\tfunction createSvga(name, anchorName) {\r\n\t var inst = new svga.Svga();\r\n\t inst.source = 'asset://' + engine.getAssetByName(name).uuid;\r\n\t return inst;\r\n\t}\r\n\t//# sourceMappingURL=utils.js.map\n\n\tvar props = {};\r\n\tfunction prepareProps() {\r\n\t var metaProps = getProps();\r\n\t engine.injectProp(props, metaProps);\r\n\t}\r\n\tfunction injectProps(p) {\r\n\t engine.injectProp(props, p);\r\n\t}\r\n\t//# sourceMappingURL=props.js.map\n\n\tvar Gameinit = (function (_super) {\r\n\t tslib.__extends(Gameinit, _super);\r\n\t function Gameinit() {\r\n\t var _this = _super.call(this) || this;\r\n\t _this._isSetUp = false;\r\n\t _this.totleY = 1200;\r\n\t _this.isMove = false;\r\n\t _this.isChoose = true;\r\n\t _this.isDid = true;\r\n\t _this.listGift = [];\r\n\t console.log(\"11111111111111\");\r\n\t _this.once(engine.Event.ADDED_TO_STAGE, _this.setup, _this);\r\n\t return _this;\r\n\t }\r\n\t Gameinit.prototype.setup = function () {\r\n\t console.log(\"初始化加载000000000000000000000000!\");\r\n\t if (this._isSetUp) {\r\n\t return;\r\n\t }\r\n\t else {\r\n\t this.loadThings();\r\n\t console.log(\"this._isSetUp=\", this._isSetUp, '<<<<');\r\n\t }\r\n\t };\r\n\t Gameinit.prototype.loadThings = function () {\r\n\t var self = this;\r\n\t var body;\r\n\t body = this._body = new engine.Rect;\r\n\t body.width = 0.0001;\r\n\t body.height = 0.0001;\r\n\t this.addChild(body);\r\n\t var gift0 = this.addRes(body, '礼盒', 250, 100, 247, 188);\r\n\t var gift1 = this.addRes(body, '礼盒', 485, 85, 247, 190);\r\n\t var gift2 = this.addRes(body, '礼盒', 385, -15, 222, 170);\r\n\t var gift3 = this.addRes(body, '礼盒', 165, -15, 222, 170);\r\n\t var gift4 = this.addRes(body, '礼盒', 20, 85, 247, 190);\r\n\t this.listGift = [gift0, gift1, gift2, gift3, gift4];\r\n\t var circle = this.addRes(body, '圈', 260, 350, 240, 80);\r\n\t var giftSvga = createSvga(\"套中动效\");\r\n\t giftSvga.visible = false;\r\n\t body.addChild(giftSvga);\r\n\t var _a = props.ferruleModuleGlobalPosition, v2X = _a[0], v2Y = _a[1];\r\n\t body.x = v2X;\r\n\t body.y = v2Y;\r\n\t engine.globalEvent.addEventListener(\"circle-game-start\", function () {\r\n\t self.isMove = true;\r\n\t console.log('this.isMove===', self.isMove);\r\n\t }, this);\r\n\t engine.globalEvent.addEventListener(\"circle-game-init\", function () {\r\n\t self.isChoose = true;\r\n\t giftSvga.visible = false;\r\n\t body.children[self.num].visible = true;\r\n\t circle.x = 260;\r\n\t circle.y = 350;\r\n\t circle.width = 240;\r\n\t circle.height = 80;\r\n\t circle.visible = true;\r\n\t }, this);\r\n\t circle.addEventListener(engine.Event.ENTER_FRAME, function () {\r\n\t if (self.isMove) {\r\n\t console.log(\"物体移动\");\r\n\t if (self.isChoose) {\r\n\t self.num = Math.floor(Math.random() * self.listGift.length);\r\n\t self.isChoose = false;\r\n\t }\r\n\t self.nodeMove(circle, self.listGift[self.num], giftSvga);\r\n\t }\r\n\t });\r\n\t };\r\n\t Gameinit.prototype.aniPlay = function (node0, targetNode, bool) {\r\n\t node0.scaleX = this.currentScale(targetNode.y, this.totleY) - 0.05 * this.currentScale(targetNode.y, this.totleY);\r\n\t node0.scaleY = this.currentScale(targetNode.y, this.totleY) - 0.05 * this.currentScale(targetNode.y, this.totleY);\r\n\t node0.x = targetNode.x;\r\n\t node0.y = targetNode.y;\r\n\t node0.visible = true;\r\n\t node0.play(false, false);\r\n\t node0.addEventListener(engine.Event.END_FRAME, function () {\r\n\t console.log(\"播放到最后一帧\", bool, '<<<');\r\n\t engine.globalEvent.dispatchEvent(\"circle-game-end\");\r\n\t bool = false;\r\n\t });\r\n\t };\r\n\t Gameinit.prototype.addRes = function (fatherNode, resName, v2X, v2Y, resW, resH) {\r\n\t console.log(\"进行资源的添加\");\r\n\t var thing = new engine.Sprite(getTextureByName(resName));\r\n\t thing.x = v2X;\r\n\t thing.y = v2Y;\r\n\t thing.width = resW;\r\n\t thing.height = resH;\r\n\t return fatherNode.addChild(thing);\r\n\t };\r\n\t Gameinit.prototype.nodeMove = function (moveNode, targetNode, nodePlay) {\r\n\t console.log(\"moveNode.x=\", moveNode.x, \"targetNode.x=\", targetNode.x);\r\n\t var moveX = targetNode.x - moveNode.x;\r\n\t var moveY = targetNode.y - moveNode.y;\r\n\t console.log('moveX=', moveX, 'moveY=', moveY);\r\n\t if (this.isDid) {\r\n\t if (Math.abs(moveX) > 2) {\r\n\t moveNode.x += moveX / Math.abs(moveX) * 5;\r\n\t }\r\n\t if (Math.abs(moveY) > 2) {\r\n\t moveNode.y += moveY / Math.abs(moveY) * 5;\r\n\t moveNode.scaleX = this.currentScale(moveNode.y, this.totleY) + 0.2;\r\n\t moveNode.scaleY = moveNode.scaleX;\r\n\t }\r\n\t if (Math.abs(moveX) < 3 && Math.abs(moveY) < 3) {\r\n\t targetNode.visible = false;\r\n\t moveNode.visible = false;\r\n\t this.aniPlay(nodePlay, targetNode, this.isDid);\r\n\t this.isMove = false;\r\n\t }\r\n\t }\r\n\t };\r\n\t Gameinit.prototype.currentScale = function (currentY, totoleDisY) {\r\n\t return (currentY + 830) / totoleDisY;\r\n\t };\r\n\t return Gameinit;\r\n\t}(engine.Container));\r\n\t//# sourceMappingURL=Gameinit.js.map\n\n\tfunction index (props) {\r\n\t prepareProps();\r\n\t injectProps(props);\r\n\t var instance = new Gameinit();\r\n\t return instance;\r\n\t}\r\n\t//# sourceMappingURL=index.js.map\n\n\treturn index;\n\n})));\n"
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{
"name": "红包雨",
"desc": "红包雨模块",
"props": {},
"assets": [],
"events": {
"in": {
"redpack-rain-reset": {
"alias": "重置"
},
"redpack-rain-start": {
"alias": "开始",
"data": {
"assets": "素材列表[{source,ratio}]",
"speedRange": "速度范围{min,max}",
"initPosRange": "初始坐标范围{min,max}",
"angleOffset": "角度偏移量",
"intervalFrames": "掉落帧间隔"
}
},
"redpack-rain-pause": {
"alias": "暂停"
},
"redpack-rain-resume": {
"alias": "恢复"
},
"redpack-rain-stop": {
"alias": "停止"
}
},
"out": {
"redpack-rain-hit": {
"alias": "击中红包",
"data": {
"type": "类型",
"pos": "坐标",
"globalPos": "全局坐标"
}
}
}
},
"id": "redpack-rain",
"code": "'use strict';\n\nvar tslib = require('tslib');\n\nvar ObjectPool = engine.ObjectPool;\nvar PoolName = 'pack';\nObjectPool.registerPool(PoolName, function () {\n return new RedPack();\n}, function (redPack, data) {\n redPack.init(data);\n});\nvar RedPack = (function (_super) {\n tslib.__extends(RedPack, _super);\n function RedPack() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._pos = new engine.Point();\n _this._globalPos = new engine.Point();\n return _this;\n }\n Object.defineProperty(RedPack.prototype, \"pos\", {\n get: function () {\n return this._pos;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RedPack.prototype, \"globalPos\", {\n get: function () {\n return this._globalPos;\n },\n enumerable: true,\n configurable: true\n });\n RedPack.prototype.init = function (data) {\n this.data = data;\n var source = data.source, initPos = data.initPos;\n this.source = source;\n this.x = this._pos.x = initPos;\n this.y = this._pos.y = -this.height;\n };\n RedPack.prototype.schedule = function () {\n var _a = this, width = _a.width, height = _a.height, _b = _a.data, angleOffset = _b.angleOffset, speed = _b.speed;\n var radian = (angleOffset + 90) * Math.PI / 180;\n var speedX = Math.cos(radian) * speed;\n var speedY = Math.sin(radian) * speed;\n this.x = this._pos.x += speedX;\n this.y = this._pos.y += speedY;\n this.parent.localToGlobal(this._pos, this._globalPos);\n var _c = this._globalPos, x = _c.x, y = _c.y;\n if (y < -height || y > this.stage.height) {\n return true;\n }\n if (angleOffset > 0) {\n if (x < -width) {\n return true;\n }\n }\n else if (angleOffset < 0) {\n if (x > this.stage.width) {\n return true;\n }\n }\n };\n return RedPack;\n}(engine.Image));\nvar RedPackRain = (function (_super) {\n tslib.__extends(RedPackRain, _super);\n function RedPackRain() {\n var _this = _super.call(this) || this;\n _this.angleOffset = 0;\n _this.intervalFrames = 10;\n engine.globalEvent.addEventListener('redpack-rain-reset', _this.reset, _this);\n engine.globalEvent.addEventListener('redpack-rain-start', _this.start, _this);\n engine.globalEvent.addEventListener('redpack-rain-pause', _this.pause, _this);\n engine.globalEvent.addEventListener('redpack-rain-resume', _this.start, _this);\n engine.globalEvent.addEventListener('redpack-rain-stop', _this.stop, _this);\n _this.addEventListener(engine.Event.ENTER_FRAME, _this.onEnterFrame, _this);\n _this.addEventListener(engine.MouseEvent.CLICK, _this.onTap, _this);\n return _this;\n }\n RedPackRain.prototype.reset = function () {\n this.pause();\n while (this.children.length > 0) {\n this.recycleOne(this.children[0]);\n }\n };\n RedPackRain.prototype.start = function (event) {\n {\n engine.injectProp(this, event.data);\n }\n this._status = 1;\n this._intervalCounting = this.intervalFrames;\n };\n RedPackRain.prototype.pause = function () {\n this._status = 0;\n };\n RedPackRain.prototype.stop = function () {\n this.reset();\n };\n RedPackRain.prototype.recycleOne = function (child) {\n this.removeChild(child);\n ObjectPool.recycleObject(PoolName, child);\n };\n RedPackRain.prototype.dropOne = function () {\n var _a = this, assets = _a.assets, angleOffset = _a.angleOffset, speedRange = _a.speedRange, initPosRange = _a.initPosRange;\n var r = Math.random();\n var targetAssetIndex;\n for (var i = 0, li = assets.length; i < li; i++) {\n var asset = assets[i];\n r -= asset.ratio;\n if (r <= 0) {\n targetAssetIndex = i;\n break;\n }\n }\n var pack = engine.ObjectPool.getObject(PoolName, {\n type: targetAssetIndex,\n source: assets[targetAssetIndex].source,\n angleOffset: angleOffset,\n speed: Math.random() * (speedRange.max - speedRange.min) + speedRange.min,\n initPos: Math.random() * (initPosRange.max - initPosRange.min) + initPosRange.min,\n });\n this.addChild(pack);\n };\n RedPackRain.prototype.onEnterFrame = function (event) {\n if (this._status === 1) {\n this._intervalCounting--;\n if (this._intervalCounting <= 0) {\n this._intervalCounting = this.intervalFrames;\n this.dropOne();\n }\n }\n for (var i = 0, li = this.children.length; i < li; i++) {\n var child = this.children[i];\n if (child.schedule()) {\n i--;\n li--;\n this.recycleOne(child);\n }\n }\n };\n RedPackRain.prototype.onTap = function (event) {\n if (event.currentTarget instanceof RedPack) {\n var _a = event.currentTarget, type = _a.type, pos = _a.pos, globalPos = _a.globalPos;\n var data = { type: type, pos: pos, globalPos: globalPos };\n this.recycleOne(event.currentTarget);\n engine.globalEvent.dispatchEvent('redpack-rain-hit', data);\n }\n };\n return RedPackRain;\n}(engine.Container));\n\nfunction index (options) {\n var instance = new RedPackRain();\n return instance;\n}\n\nmodule.exports = index;\n"
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{
"name": "Test1",
"props": {},
"assets": [
{
"uuid": "20191216114509",
"url": "//yun.duiba.com.cn/aurora/af90069732223c75818c4799b3130bd0f0ad4ff8.png",
"ext": ".png"
}
],
"id": "test1",
"code": "'use strict';\n\nvar tslib = require('tslib');\n\nvar Test1 = (function (_super) {\n tslib.__extends(Test1, _super);\n function Test1() {\n var _this = _super.call(this) || this;\n var sprite = new engine.Sprite(engine.Texture.from(getAssetByUUID('20191216114509').uuid));\n _this.addChild(sprite);\n sprite.addEventListener(engine.MouseEvent.CLICK, _this.onClick, _this);\n engine.globalEvent.addEventListener('start-game', _this.onGameStart, _this);\n return _this;\n }\n Test1.prototype.onClick = function (e) {\n engine.globalEvent.dispatchEvent('update-game-status', { score: 1 });\n };\n Test1.prototype.onGameStart = function (e) {\n console.log(e.type, e.data);\n var rect = new engine.Rect();\n rect.x = 100;\n rect.y = 200;\n rect.width = 100;\n rect.height = 100;\n rect.fillColor = 'green';\n this.addChild(rect);\n };\n return Test1;\n}(engine.Container));\n\nfunction index (options) {\n var instance = new Test1();\n return instance;\n}\n\nmodule.exports = index;\n"
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{
"name": "测试",
"props": {},
"id": "test",
"code": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Test = (function (_super) {\n __extends(Test, _super);\n function Test() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Test.prototype.mounted = function () {\n console.log('test mounted');\n };\n Test.id = 'test';\n return Test;\n}(engine.ScriptBase));\nexports.Test = Test;\n"
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment