Commit 78b3fcc3 authored by Master Q's avatar Master Q

游戏模版

parents
# project ignores
node_modules
released
.DS_Store
.idea
output.js
output.js.map
\ No newline at end of file
{
// 使用 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
{
"compile-hero.disable-compile-files-on-did-save-code": true
}
\ No newline at end of file
# 最新模板分支newTemplate0805
### psd命名规则
按钮单图 图层名字_btn_id
按钮多图 组名_btn_id (里面多图层,0常态,1不可点击,2按钮)
普通图片png 图层名字_id
普通图片jpg 图层名字_jpg_id
矩形 图层名字_id
文本 图层名字_id (默认都居左,未改文本前, 调整调用Tool里方法changeTextAlign)
贴图 图层名字_tex (只切图,不进皮肤)
作为item的皮肤不进root 组名_item (比如自定义的类或滚动列表的item)
(组名,图层名字,id均为动态)
(id为英文,显示对象原属性名不能作为id,比如"name")
(同名的的图片只要图片相同就行,用clearSameImg脚本将同图移进common)
(能合并的图自行合并)
(视图模块名字命名成...Panel,...Scene,例如StartScene,RulePanel,方便生成模块传参,否则自行修改createModule脚本里的参数)
(id必须是英文,作为item的组名必须是英文,因为会生成类)
### psd解析
生成./resource/skinJson.json和./src/SkinJson.ts,
初始一致,json只用于脚本createModule.js生成场景或弹框模块,实际作用数据是ts,有需要自行修改SkinJson.ts
执行,会刷新资源配置及覆盖SkinJson.ts,注意
```shell script
#多视图解析,会解析./psd文件夹内所有psd及内视图
npm run psd
#单视图解析,主要用于处理后添加的视图,传参./psd文件夹内psd名字,
#资源及皮肤数据skin.json会在./psd文件夹内生成,自行处理进./resource/skin.json和./src/SkinJson.ts文件
npm run psdSin
```
### 生成模块 有psd生成皮肤数据时使用
会根据参数Panel或者Scene生成ts文件写入./src/panels或./src/scenes文件夹
```shell script
npm run createModule RulePanel
```
### 资源配置刷新
有资源删除或增加时执行
会根据resource里的子级文件夹分组
文件夹名字用于各模块里的groupNames,用于按需资源加载
```shell script
npm run flushRes
```
### 本地开发
```shell script
npm run dev
```
### 图集工具安装
```shell script
#全局安装
cnpm install pack_textures -g
#终端输入packTextures检查环境变量是否存在
```
### 淘宝打包流程
```shell script
#带资源打包,并生成./released/resource文件夹和./released/output.js文件
npm run build
#只打包代码,
npm run buildTS
#脚本copyJs.js自行修改小程序output.js文件路径,嫌麻烦自行修改package.json里的build和buildTS,也可自行复制output.js
npm run copyJs
```
### web打包流程
```shell script
#带资源打包,并生成./released/resource文件夹和./output.js文件及./released/index.html,可复制进皮肤
npm run buildWeb
#只打包代码,并生成./output.js文件及./released/index.html,会打印版本号,可直接更换皮肤的版本号
npm run buildWebTS
```
### 适配
./module/views/layers.ts可设置所有层级适配(弹框场景等等)
单独模块的适配自行在模块里处理,修改this.y
### psd导出文本
部分文案尺寸错误自行在SkinJson,ts里修改
居中居右,在未修改文本字号字符等属性前调用Tools.changeTextAlign修改,可与psd表现保持一致
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Document</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" />
<!-- 渲染引擎 -->
<!-- <script src="//yun.duiba.com.cn/db_games/libs0924/fyge2020.min.js" crossorigin="anonymous"></script>-->
<!-- svga解析库 -->
<!-- <script src="//yun.duiba.com.cn/db_games/libs0924/svgaParser.minWeb.js" crossorigin="anonymous"></script>-->
<!-- 本地的js,需要souremap调试的用本地js -->
<script src="libs/fyge.min.js"></script>
<script src="libs/svgaParser.min.js"></script>
<script src="libs/howler.min.js"></script>
<!-- <script src="libs/svgaParser.min1.js"></script> -->
<script src="//yun.duiba.com.cn/js-libs/vConsole/3.3.4/vconsole.min.js"></script>
<script>
// var vConsole = new VConsole();
</script>
<style>
html,
body {
padding: 0;
margin: 0;
border: 0;
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
background-color: #ffffff;
/* background: linear-gradient(#93dbb7,#ff0,#b5d89a); */
/* background: linear-gradient(#93dbb7,#b5d89a); */
/* 背景图片,解决加载太慢,白屏问题,加了这个下面的__loading__可以删掉了 */
/* background-size: 100%;
background-position: center;
background-image: url("https://yun.duiba.com.cn/db_games/activity/game/1550472986/resource/assets/playscene/playscenebg.jpg"); */
}
</style>
</head>
<body>
<script>
const app = {};
function getApp() {
return app;
}
</script>
<div id="__loading__" style="position:absolute;left:50%;top:50%;margin-left:-45px;color:#ffffff">拼命加载中...</div>
<div id="cusEngine" style="line-height:0;font-size:0;position: absolute;">
<canvas id="canvas" style="width: 100%;height: 100%"></canvas>
</div>
<!-- 帧率检测 -->
<!-- <script src="//yun.duiba.com.cn/db_games/libs0924/stats.js"></script> -->
<!-- <script src="https://yun.duiba.com.cn/db_games/libs0126/stats.js"></script>-->
<script>
window.addEventListener("load", function () {
//获取canvas
var canvas = document.getElementById("canvas");
canvas.width = document.body.clientWidth * (window.devicePixelRatio || 1)
canvas.height = document.body.clientHeight * (window.devicePixelRatio || 1)
var main = new Main(canvas);
var mouseEvent = main.stage.onMouseEvent.bind(main.stage);
canvas.addEventListener("touchstart", mouseEvent, false);
canvas.addEventListener('touchmove', mouseEvent, false);
canvas.addEventListener('touchend', mouseEvent, false);
window.stage = main.stage
})
</script>
<!-- 构建的js -->
<script src="output.js" crossorigin="anonymous"></script>
</body>
</html>
This diff is collapsed.
declare module SvgaParser {
/**
* 加载方法
* @param url 资源路径
* @param success
* @param failure
*/
export function loadSvga(url: string, success: (videoItem: VideoEntity) => void, failure?: (err: string) => void): void;
/**
* 导出只是当作类型接口用
*/
export interface VideoEntity {
/**
* SVGA 文件版本
*/
version: string;
/**
* 影片尺寸
*/
videoSize: {
width: number;
height: number;
};
/**
* 帧率,60,30等每秒
*/
FPS: number;
/**
* 总帧数
*/
frames: number;
/**
* base64图片数据记录
*/
images: {
[key: string]: string
};
/**
* 图片是否已被缓存,缓存全局,注意名字覆盖
*/
hasBeenCached: boolean;
/**
* sprite对象数据
*/
sprites: SpriteEntity[];
}
interface SpriteEntity {
/**
* 标识
*/
matteKey: string;
/**
* 图片key值
*/
imageKey: string;
/**
* 帧数据数组
*/
frames: FrameEntity[];
}
/**
* 还有很多其他数据,暂不需要,比如矢量路径和遮罩路径暂时都无
*/
interface FrameEntity {
/**
* 透明度
*/
alpha: number;
/**
* 2维矩阵数据
*/
transform: {
a: number,
b: number,
c: number,
d: number,
tx: number,
ty: number,
};
}
}
declare module "svga-parser" { export = SvgaParser; }
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
// Type definitions for howler.js v2.1.1
// Project: https://github.com/goldfire/howler.js
// Definitions by: Pedro Casaubon <https://github.com/xperiments>
// Alexander Leon <https://github.com/alien35>
// Nicholas Higgins <https://github.com/nicholashza>
// Carlos Urango <https://github.com/cjurango>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
interface HowlerGlobal {
usingWebAudio: boolean;
html5PoolSize: number;
noAudio: boolean;
autoUnlock: boolean;
autoSuspend: boolean;
ctx: AudioContext;
masterGain: GainNode;
mute(muted: boolean): this;
volume(): number;
volume(volume: number): this;
codecs(ext: string): boolean;
unload(): this;
stereo(pan: number): this;
pos(x: number, y: number, z: number): this | void;
orientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): this | void;
}
declare let Howler: HowlerGlobal;
interface IHowlSoundSpriteDefinition {
[name: string]: [number, number] | [number, number, boolean]
}
interface IHowlProperties {
src: string | string[];
volume?: number;
html5?: boolean;
loop?: boolean;
preload?: boolean;
autoplay?: boolean;
mute?: boolean;
sprite?: IHowlSoundSpriteDefinition;
rate?: number;
pool?: number;
format?: string[] | string;
xhrWithCredentials?: boolean;
onload?: () => void;
onloaderror?: (soundId: number, error: any) => void;
onplay?: (soundId: number) => void;
onplayerror?: (soundId: number, error: any) => void;
onend?: (soundId: number) => void;
onpause?: (soundId: number) => void;
onstop?: (soundId: number) => void;
onmute?: (soundId: number) => void;
onvolume?: (soundId: number) => void;
onrate?: (soundId: number) => void;
onseek?: (soundId: number) => void;
onfade?: (soundId: number) => void;
onunlock?: (soundId: number) => void;
}
interface Howl {
play(spriteOrId?: string | number): number; // .play() is not chainable; the other methods are
pause(id?: number): this;
stop(id?: number): this;
mute(): boolean;
mute(muted: boolean, id?: number): this;
volume(): number;
volume(idOrSetVolume: number): this | number;
volume(volume: number, id: number): this;
fade(from: number, to: number, duration: number, id?: number): this;
rate(): number;
rate(idOrSetRate: number): this | number;
rate(rate: number, id: number): this;
seek(seek?: number, id?: number): this | number;
loop(id?: number): boolean;
loop(loop: boolean, id?: number): this;
playing(id?: number): boolean;
duration(id?: number): number;
state(): 'unloaded' | 'loading' | 'loaded';
load(): this;
unload(): void;
on(event: 'load', callback: () => void, id?: number): this;
on(event: 'loaderror', callback: (soundId: number, error: any) => void, id?: number): this;
on(event: 'play', callback: (soundId: number) => void, id?: number): this;
on(event: 'playerror', callback: (soundId: number, error: any) => void, id?: number): this;
on(event: 'end', callback: (soundId: number) => void, id?: number): this;
on(event: 'pause', callback: (soundId: number) => void, id?: number): this;
on(event: 'stop', callback: (soundId: number) => void, id?: number): this;
on(event: 'mute', callback: (soundId: number) => void, id?: number): this;
on(event: 'volume', callback: (soundId: number) => void, id?: number): this;
on(event: 'rate', callback: (soundId: number) => void, id?: number): this;
on(event: 'seek', callback: (soundId: number) => void, id?: number): this;
on(event: 'fade', callback: (soundId: number) => void, id?: number): this;
on(event: string, callback: Function, id?: number): this;
on(event: 'unlock', callback: (soundId: number) => void, id?: number): this;
once(event: 'load', callback: () => void, id?: number): this;
once(event: 'loaderror', callback: (soundId: number, error: any) => void, id?: number): this;
once(event: 'play', callback: (soundId: number) => void, id?: number): this;
once(event: 'playerror', callback: (soundId: number, error: any) => void, id?: number): this;
once(event: 'end', callback: (soundId: number) => void, id?: number): this;
once(event: 'pause', callback: (soundId: number) => void, id?: number): this;
once(event: 'stop', callback: (soundId: number) => void, id?: number): this;
once(event: 'mute', callback: (soundId: number) => void, id?: number): this;
once(event: 'volume', callback: (soundId: number) => void, id?: number): this;
once(event: 'rate', callback: (soundId: number) => void, id?: number): this;
once(event: 'seek', callback: (soundId: number) => void, id?: number): this;
once(event: 'fade', callback: (soundId: number) => void, id?: number): this;
once(event: string, callback: Function, id?: number): this;
once(event: 'unlock', callback: (soundId: number) => void, id?: number): this;
off(event: string, callback?: Function, id?: number): this;
off(): this;
stereo(pan: number, id?: number): this | void;
pos(x: number, y: number, z: number, id?: number): this | void;
orientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): this | void;
pannerAttr(o: {
coneInnerAngle?: number,
coneOuterAngle?: number, coneOuterGain?: number,
distanceModel: 'inverse' | 'linear', maxDistance: number,
panningModel: 'HRTF' | 'equalpower', refDistance: number, rolloffFactor: number
}, id?: number): this;
}
interface HowlStatic {
new(properties: IHowlProperties): Howl;
}
declare let Howl: HowlStatic;
declare module "howler" {
export let Howler: HowlerGlobal;
export let Howl: HowlStatic;
}
This diff is collapsed.
var Stats = function () {
var startTime = Date.now(), prevTime = startTime;
var ms = 0, msMin = Infinity, msMax = 0;
var fps = 0, fpsMin = Infinity, fpsMax = 0;
var frames = 0, mode = 0;
var container = document.createElement('div');
container.id = 'stats';
container.addEventListener('mousedown', function (event) {
event.preventDefault();
setMode(++mode % 2)
}, false);
container.style.cssText = 'width:80px;opacity:0.9;cursor:pointer';
var fpsDiv = document.createElement('div');
fpsDiv.id = 'fps';
fpsDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#002';
container.appendChild(fpsDiv);
var fpsText = document.createElement('div');
fpsText.id = 'fpsText';
fpsText.style.cssText = 'color:#0ff;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
fpsText.innerHTML = 'FPS';
fpsDiv.appendChild(fpsText);
var fpsGraph = document.createElement('div');
fpsGraph.id = 'fpsGraph';
fpsGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0ff';
fpsDiv.appendChild(fpsGraph);
while (fpsGraph.children.length < 74) {
var bar = document.createElement('span');
bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#113';
fpsGraph.appendChild(bar);
}
var msDiv = document.createElement('div');
msDiv.id = 'ms';
msDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#020;display:none';
container.appendChild(msDiv);
var msText = document.createElement('div');
msText.id = 'msText';
msText.style.cssText = 'color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
msText.innerHTML = 'MS';
msDiv.appendChild(msText);
var msGraph = document.createElement('div');
msGraph.id = 'msGraph';
msGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0f0';
msDiv.appendChild(msGraph);
while (msGraph.children.length < 74) {
var bar = document.createElement('span');
bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#131';
msGraph.appendChild(bar);
}
var setMode = function (value) {
mode = value;
switch (mode) {
case 0:
fpsDiv.style.display = 'block';
msDiv.style.display = 'none';
break;
case 1:
fpsDiv.style.display = 'none';
msDiv.style.display = 'block';
break;
}
}
var updateGraph = function (dom, value) {
var child = dom.appendChild(dom.firstChild);
child.style.height = value + 'px';
}
return {
REVISION: 11,
domElement: container,
setMode: setMode,
begin: function () {
startTime = Date.now();
},
end: function () {
var time = Date.now();
ms = time - startTime;
msMin = Math.min(msMin, ms);
msMax = Math.max(msMax, ms);
msText.textContent = ms + ' MS (' + msMin + '-' + msMax + ')';
updateGraph(msGraph, Math.min(30, 30 - (ms / 200) * 30));
frames++;
if (time > prevTime + 1000) {
fps = Math.round((frames * 1000) / (time - prevTime));
fpsMin = Math.min(fpsMin, fps);
fpsMax = Math.max(fpsMax, fps);
fpsText.textContent = fps + ' FPS (' + fpsMin + '-' + fpsMax + ')';
updateGraph(fpsGraph, Math.min(30, 30 - (fps / 100) * 30));
prevTime = time;
frames = 0;
}
return time;
},
update: function () {
startTime = this.end();
}
}
};
//执行
var stats = new Stats();
stats.domElement.style.position = 'absolute';
stats.domElement.style.top = '0px';
document.body.appendChild(stats.domElement);
aa();
function aa() {
stats.update();
requestAnimationFrame(aa)
}
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
declare const app;
declare const PAGE;
declare function getApp();
declare namespace my {
export function postMessage(e);
export function onMessage(e);
export const tb;
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{"v":"5.6.3","fr":30,"ip":0,"op":97,"w":473,"h":203,"nm":"按钮更新","ddd":0,"assets":[{"id":"0","w":368,"h":154,"u":"","p":"data:image/png;base64,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","e":1},{"id":"1","w":390,"h":176,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYYAAACwBAMAAAD5+tTSAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAFVBMVEVHcEz///////////////////////+3ygHaAAAABnRSTlMAXNWlK4m/aDWWAAACjElEQVR42u3dz07CQBAGcFoK58Y/PSNqz0i050UTzlUTztCWff9HEESBagXsNul8wzdPwC873dndsDudztmE92ZbifsQXdCgwotti5E1gpjZVmPZAOHZthx37oa4bUPmTOjZ1iN1NUTtGxbwqeSeTJ4VECH85+D8QfgSDAM3Q1+CYQ4/LTlPTDMJhiX81Oo8uVoRQQMNNJy7YfI+jK28yIZPVycKriX+/q3j9QTBpWTBp+Lh2G4hsfIjD+WeJDVy5NTDIKwQKXQiHU6nAIewQhi5ux23bVHXYsWoIpNiMENmwDOpMps8ixch/DD8GgjEYfg5EBGkoTQQgcUMI+1QtUbsn8MmoIYc/Ysuf9VTWEMBn0p7yYSbSrtkmgIbCvhU2iZTYJHDQG5+qrZCPrRhALzeK6/7EmhDLuh0vnagV7jvKtcFN4zgp6XNxDQFNxTwU+tmcp2BG5ZS/pDhEBl+eVgXCA/eEMr4v55TpPAlbl3kfHjDQIWhD2+Y00ADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQoMjg0yAgBir+s67h7oCGOxwBvMGouA9Eg4DIlNyPS8ANuZK7lhG4YSHlMXinJZ+OO+DoC6ZUyZsI6Asm04Evcpmad06wC8RCTrcQp/Kg4/0l7Mk1FNQuxGlaUvGmmoq37brwnzT2asNgv6K7q3DYyTSCfwq49BhwBJ9KuMk0EtfZq3aRRi5zhbp31jW8d6+i74CG/g+AAxEKbNH8z6js6Iy1FcrldtZ1yaR1vAARHkX3dK05J8F1m/qj0xQSYmkONsG7ACDcHO37PRYuuD2lL+RkjC746s0pEnB6b064+ABVyde4CqqVygAAAABJRU5ErkJggg==","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"开始寻找仔仔按钮","refId":"0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[235,102,0],"ix":2},"a":{"a":0,"k":[184,77,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":5.75,"s":[90,102.983,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":11.5,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":17.25,"s":[90,102.983,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":23,"s":[105,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":30,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":60,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":65.75,"s":[90,102.983,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":71.5,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":77.25,"s":[90,102.983,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":83,"s":[105,100,100]},{"t":90,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"白色光晕.png","cl":"png","refId":"1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[40]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":37,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":82,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":83,"s":[40]},{"t":97,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[236.469,101.5,0],"ix":2},"a":{"a":0,"k":[195,88,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":23,"s":[104.469,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":37,"s":[122.229,117,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":83,"s":[104.469,100,100]},{"t":97,"s":[122.229,117,100]}],"ix":6}},"ao":0,"ip":23,"op":623,"st":23,"bm":0}],"markers":[{"tm":109,"cm":"1","dr":0}],"tiny":0.55}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
const path = require('path');
const config = {
'/ngame/new/datapash': {
data: './json/datapash.json'
},
'/hdtool/recon/ngame/ngameSubmit': {
data: './json/ngameSubmit.json'
},
'/hdtool/recon/ajaxElement': {
data: './json/ajaxElement.json'
},
'/hdtool/recon/getOrderStatus': {
data: './json/getOrderStatus.json'
},
'/hdtool/recon/doJoin': {
data: './json/doJoin.json'
},
'/hdtool/recon/ngame/getNgameStartStatus': {
data: './json/getNgameStartStatus.json'
},
}
for (let item in config) {
if (config.hasOwnProperty(item))
config[item].path = path.resolve(__dirname, config[item].data);
}
module.exports = config;
\ No newline at end of file
{
"code": "0000000000",
"data": {
"creditsConf": {
"creditsUp": 100,
"creditsType": "virtual",
"creditsDown": 50,
"prize": [
{
"img": "adsfsadf",
"credits": 20,
"id": 4,
"title": "0.3"
},
{
"img": "sadfasdf",
"credits": 150,
"id": 3,
"title": "1.5倍"
},
{
"img": "sadfasdf",
"credits": 100,
"id": 2,
"title": "1倍"
},
{
"img": "sadfasdf",
"credits": 50,
"id": 1,
"title": "0.5倍"
}
]
},
"floating": {
"jsTest": "//yun1.duiba.com.cn/h5/showCouponPrize/4.0.0/index_201710191434.js",
"cssTest": "//yun1.duiba.com.cn/h5/showCouponPrize/4.0.0/index_201710191440.css"
},
"options": [
{
"itemId": 47861,
"hidden": false,
"prizeType": "thanks",
"name": "谢谢参与",
"description": "",
"logo": "//yun1.duiba.com.cn/upload/uP99F1462438316972.png",
"id": 15581
},
{
"itemId": 47862,
"hidden": false,
"prizeType": "lucky",
"name": "幸运福袋",
"description": "",
"logo": "//yun1.duiba.com.cn/webapp/img/luckynewn.png",
"id": 15582
},
{
"itemId": 47863,
"scoreArea": "",
"hidden": false,
"prizeType": "alipay",
"name": "支付宝1",
"description": "",
"logo": "//yun1.duiba.com.cn/developer/img/activityTool/slotMachine/alipay.png",
"id": 15585
},
{
"itemId": 47864,
"scoreArea": "",
"hidden": false,
"prizeType": "alipay",
"name": "支付宝1",
"description": "",
"logo": "//yun1.duiba.com.cn/developer/img/activityTool/slotMachine/alipay.png",
"id": 15585
}
],
"rule": "adsfasdfasd啊实打实爱的额求稳怕哦i求稳怕请问赔钱片尾曲哦物品i区乌日千万人i去我日哦确认iqo【iadsfasdfasd啊实打实爱的额求稳怕哦i求稳怕请问赔钱片尾曲哦物品i区乌日千万人i去我日哦确认iqo【iadsfasdfasd啊实打实爱的额求稳怕哦i求稳怕请问赔钱片尾曲哦物品i区乌日千万人i去我日哦确认iqo【i",
"type": "hdtool",
"element": {
"isCreditsTypeOpen": false,
"myCreditsLong": 999999632167,
"freeLimit": 5,
"success": false,
"myCredits": "999999632167",
"needCredits": "100",
"freeEmpty": true,
"needCreditsLong": 9,
"status": 7
},
"coinPusherConf": {
"exchangeRate": 60,
"creditsGear": "25,60,75,80"
}
},
"success": true,
"desc": "OK",
"timestamp": 1548832971636
}
\ No newline at end of file
{
"success":true,
"code":"0000000000",
"desc":"OK",
"timestamp":1548915321930,
"data":123456
}
\ No newline at end of file
{
"success":true,
"code":"0000000000",
"desc":"OK",
"timestamp":1550570639368,
"data":{
"orderId":"883006813674240289",
"submitToken":"d895deb9118f4b938d0b70a3dd2ace19",
"credits":"999999491765",
"unitName":"金币",
"consumerCredits":999999491765
}
}
\ No newline at end of file
{
"success":true,
"code":"0000000000",
"desc":"OK",
"timestamp":1548923950498,
"data":{
"element":{
"success":false,
"isCreditsTypeOpen":false,
"needCredits":"100",
"myCredits":"1123",
"myCreditsLong":1123,
"needCreditsLong":9,
"freeLimit":2,
"status":6,
"freeEmpty":true
},
"lottery":{
"id":null,
"type":"111",
"imgUrl":"//yun.duiba.com.cn/images/201607/73htz55ih9.jpg",
"link":null,
"title":"重复券测试grape",
"itemId":null,
"appItemId":null,
"bonus":null,
"bonusMin":null,
"bonusMax":null,
"needAccount":null,
"appLucky":null,
"tip":null,
"useBtnText":null,
"validate":null,
"couponCode":null,
"couponKey":null,
"stInfoDpmImg":null,
"stInfoDpmClose":null,
"stInfoDpmGoUse":null,
"showUse":null,
"openUrl":null,
"iosDownloadUrl":null,
"androidDownloadUrl":null,
"isDownloadUrl":null,
"confirm":null,
"phaseNumber":null,
"happyCode":null,
"appHidden":true,
"zybangJson":null
},
"exposure":11111,
"creditsInfo":{
"activityId":82567,
"prizeId":4,
"orderNum":null,
"developerBizId":"3029576",
"score":null,
"recordStatus":1,
"errorMsg":null
},
"againTag":null
}
}
\ No newline at end of file
{
"success":true,
"code":"0000000000",
"desc":"OK",
"timestamp":1550646190489,
"data":{
"score":100,
"maxScore":100
}
}
\ No newline at end of file
{
"success": true
}
\ No newline at end of file
{
"success": true
}
\ No newline at end of file
{
"success": true,
"data": {
"avatar": "https://source.unsplash.com/user/erondu/76x76",
"nickName": "我啊是大请问",
"activityId": "string",
"inviteId": "",
"isFollow": false,
"openId": "string",
"firstLoginToday": true,
"newUser": false,
"shop": "FUSION",
"shopId": 10004,
"completed": true
}
}
{
"success": true
}
\ No newline at end of file
{
"success": true
}
\ No newline at end of file
{
"success": true,
"code": "1",
"message": "ok",
"data": {
"rule": "rulerulerulerulerulerulerule\nrulerulerulerulerulerulerule\nrulerulerulerulerulerulerule\nrulerulerulerulerulerulerule\nrulerulerulerulerurulerulerulerulerurulerulerulerulerurulerulerulerulerurulerulerulerulerurulerulerulerulerulerulerule\nrulerulerulerulerulerulerule\n",
"startTime": 1619683713395,
"endTime": 1619719725870,
"showPrizeImg": {
"image_1": "https://yun.duiba.com.cn/aurora/assets/874a3723b096a46ed3eba6ececc51e9525499f37.png",
"image_2": "https://yun.duiba.com.cn/aurora/assets/6497ba0ce2ba57cfb74c00456d48be995e0553ca.png",
"image_3": "https://yun.duiba.com.cn/aurora/assets/8c6cce25b4970d776a4ac89780ffe97b2c69c56c.png"
}
}
}
{
"code": "000000",
"data": {
"maxLevel": 5,
"invitePrize": [
{
"inviteCount": 18,
"receiveStatus": 3,
"type": "level1"
},
{
"inviteCount": 38,
"receiveStatus": 2,
"type": "level2"
},
{
"inviteCount": 68,
"receiveStatus": 1,
"type": "level3"
},
{
"inviteCount": 88,
"receiveStatus": 1,
"type": "level4"
}
],
"inviteTotalCount": 200,
"hasAccessMaxLevel": false,
"gameTimes": 3,
"hasTakeTotalTimesPrize": false,
"cardTotalCount": 8
},
"success": true,
"message": "成功"
}
{
"success": true,
"data": {
"isVip": true,
"url": "https://www.baidu.com/"
}
}
{
"success": true,
"data": {
"id": "123456",
"type": 1,
"name": "吕秀兰",
"image": "https://yun.duiba.com.cn/aurora/assets/8c6cce25b4970d776a4ac89780ffe97b2c69c56c.png"
}
}
{
"data": {
"id": 666666,
"isFirstJoin": true
},
"success": true,
"code": "111",
"message": "ok"
}
{
"data": {
"hasCardInfo": false,
"cardTotalCount": 1,
"prize": {
"image": "https://yun.duiba.com.cn/aurora/assets/8c6cce25b4970d776a4ac89780ffe97b2c69c56c.png",
"id": 123453546456,
"name": "prize",
"type": 1
}
},
"success": true,
"code": "111",
"message": "ok"
}
{
"data": null,
"success": true,
"code": "111",
"message": "ok"
}
{
"data": {
},
"success": true,
"code": "111",
"message": "ok"
}
{
"success": true,
"data": {
"id": "123456",
"type": 3,
"name": "吕秀兰",
"image": "https://yun.duiba.com.cn/aurora/assets/8c6cce25b4970d776a4ac89780ffe97b2c69c56c.png"
}
}
{
"data": {
"id": 666666,
"isFirstJoin": true
},
"success": true,
"code": "111",
"message": "ok"
}
{
"data": {
"id": 666666,
"score": 1,
"isNewRecord": false,
"productLink": "http://qnpic.top/yoona2",
"isWinPrize": false,
"level": "2"
},
"success": true,
"code": "111",
"message": "ok"
}
{
"success": true,
"message": "",
"code": "",
"data": {
"ruleIdList": [
"ru_1",
"ru_2",
"ru_3",
"ru_4"
],
"drawStatus": 12,
"prizeId": "aa",
"gameCounts": 1
}
}
\ No newline at end of file
{
"success": true,
"message": "",
"code": "",
"data": 1234
}
\ No newline at end of file
{
"success": true,
"message": "",
"code": "",
"data": {
"type": 1,
"status": 1,
"prize": {
"prizeId": "sp_1",
"prizeType": 1,
"optionId": "sdhjfhjhjjj",
"optionName": "10元话费",
"optionImg": "https://www.baidu.com/xxoo2.png",
"userRecordId": 1235,
"url": "https://www.baidu.com/order/1235"
}
}
}
\ No newline at end of file
{
"success": true,
"message": "",
"data": "<p class=\"p1\">1、什么人可以参与抽奖?</p><p class=\"p1\">同时持有中信银行借记卡和信用卡的客户,活动期间内预约报名(每个自然月均可报名),完成绑定中信银行借记卡并用中信银行手机银行app对本人绑定的信用卡进行自动还款任务即视为达标获得抽奖资格。达标用户将以短信形式通知抽奖。 </p><p>  </p><p class=\"p1\">2、抽奖的时间是什么时候?</p><p class=\"p1\">报名成功次月10日-15日。每期的抽奖资格当期有效,若满足抽奖资格未在有效期内抽奖,资格不保留。首轮达标客户的抽奖开启时间为:7月10-15日。</p><p>  </p><p class=\"p1\">3、活动说明:</p><p class=\"p1\">1)点击“立即抽奖”按钮,摇奖机开始转动,最终摇奖机中间停留的即为您所中的奖品。</p><p class=\"p1\">2)活动期间,每位客户每个自然月均可报名参与活动,预约报名并完成绑定中信银行借记卡并用中信银行手机银行app对本人绑定的信用卡进行自动还款任务即视为达标获得抽奖资格,可获抽奖资格,每位客户每个自然月最多可获一次抽奖机会,请在抽奖有效期内(报名次月10日—15日)通过短信路径或登录手机银行首页——特色服务——还款抽奖——进入页面抽奖,每期的抽奖资格当期有效,若满足抽奖资格未在有效期内抽奖,资格不保留。</p><p class=\"p1\">3)客户抽中的“10元话费”奖励将在当月30日前直接充值到您预留报名的手机号码中,请注意查收;</p><p class=\"p1\">4)大牌券奖励中奖后客户可在活动页面右上角的【我的奖品】中找到,奖品具体使用规则可在奖品详情页查看,大牌权益奖励兑换及使用将会跳转至权益对应的提供方平台,您填写的信息仅用于奖品或权益发放时使用(如姓名、手机号、地址等)。本活动服务由第三方杭州兑吧网络科技有限公司提供,相关责任将由杭州兑吧网络科技有限公司承担,如有问题请咨询该公司客服。中信银行仅为相关活动提供链接服务,不提供任何形式的担保和承诺。大牌券的领取使用有任何问题请致电兑吧客服专线:400-609-0828;</p><p class=\"p1\">5)为保证活动的公平公正,通过不当手段、利用系统漏洞恶意套取奖励等不当途径参与本活动抽奖的客户,中信银行有权终止该客户参与活动的权利并取消其获奖资格;</p><p class=\"p1\">6)凡参与活动的客户,即视为接受活动所有规则,在法律允许范围内,中信银行保留对本次活动的解释权、随时调整本活动优惠信息、变更活动的权利;</p><p class=\"p1\">7)通过本软件参加的任何商业活动,均与Apple Inc.无关;</p><p><span style=\"font-size:10.5ptpx\">8)本次活动授权杭州兑吧网络科技有限公司提供营销服务,若有相关疑问,请致电兑吧客服专线:400-609-0828。</span></p>"
}
\ No newline at end of file
{}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
import { destroyWaiting } from "./waitingCtrl";
import PanelCtrl from "./panelCtrl";
import SceneCtrl from "./sceneCtrl";
import { destroyToast } from "./toastCtrl";
import ConfirmPanel from "../../src/common/IConfirmPanel";
export { showToast } from "./toastCtrl";
export * from "./waitingCtrl";
/**
* 展示弹框
* @param panel 弹框类
* @param data 数据
*/
export const showPanel = (panel: any, data?: any) => {
return PanelCtrl.instance.show(panel, data)
}
export const showConfirm = (panel: any, data?: any) => {
const confirmPanel: ConfirmPanel = PanelCtrl.instance.show(panel, data);
return confirmPanel.makePromise();
}
/**
* 关闭所有弹框
*/
export const closeAllPanels = () => {
PanelCtrl.instance.closeAll();
}
/**
* 关闭当前弹框
*/
export const closeCurrentPanel = () => {
PanelCtrl.instance.closeCurrent();
}
/**
* 替换场景
* @param scene
* @param data
*/
export const changeScene = (scene: any, data?: any) => {
SceneCtrl.instance.change(scene, data)
}
/**
* 获取当前场景
*/
export function getCurrentScene(): any {
return SceneCtrl.instance.currentScene
}
/**
* 淘宝小程序的alert
* @param {string} title
* @param {string} content
*/
export const showAlert = (title?: string, content?: string) => {
//@ts-ignore
if (my) {
//@ts-ignore
my.alert({
title: title || "",
content: content || ""
});
} else {
console.log(title, content)
}
}
/**
* 替换setTimeout 因为页面销毁时setTimeout不会停
* 所以干脆用Tween的
* @param {Function} callback
* @param {number} time 毫秒计
*/
export function wait(callback: () => void, time: number): {} {
let obj = {};
FYGE.Tween.get(obj)
.wait(time)
.call(callback)
return obj
}
export function clearWait(obj: {}) {
obj && FYGE.Tween.removeTweens(obj);
}
/**
* 递归清除显示对象里面所有的Tween
* @param obj
* @param isRecursive 默认true,递归移除子级
*/
export function removeTweens(obj, isRecursive: boolean = true) {
if (!obj) return
FYGE.Tween.removeTweens(obj);
if (!isRecursive || !obj.children || !obj.children.length) return
obj.children.forEach(child => {
removeTweens(child)
});
}
/**
* 销毁方法
*/
export function destroyAllCtrls() {
destroyToast();
destroyWaiting();
PanelCtrl.instance.destroy();
SceneCtrl.instance.destroy();
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
import { Module } from "./Module";
export class Scene extends Module {
/**
* 显示动画
* 继承时注意,回调要加
* 因为这种动画基本原场景最好不消失
*/
showAni(callback: Function) {
callback()
}
/**
* 统一更新方法
*/
updateScene() {
}
}
\ 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.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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