├── .creator
└── asset-template
│ └── typescript
│ └── Custom Script Template Help Documentation.url
├── .gitignore
├── LICENSE
├── README.md
├── assets
├── libs.meta
├── main.scene
├── main.scene.meta
├── resources.meta
├── resources
│ ├── audios.meta
│ ├── audios
│ │ ├── Gravel.mp3
│ │ ├── Gravel.mp3.meta
│ │ ├── nocturne.mp3
│ │ └── nocturne.mp3.meta
│ ├── avatar.meta
│ ├── common.meta
│ ├── common
│ │ ├── anim.meta
│ │ ├── anim
│ │ │ ├── button_scale_end.anim
│ │ │ ├── button_scale_end.anim.meta
│ │ │ ├── button_scale_start.anim
│ │ │ ├── button_scale_start.anim.meta
│ │ │ ├── notify.anim
│ │ │ └── notify.anim.meta
│ │ ├── prefab.meta
│ │ ├── prefab
│ │ │ ├── alert.prefab
│ │ │ ├── alert.prefab.meta
│ │ │ ├── confirm.prefab
│ │ │ ├── confirm.prefab.meta
│ │ │ ├── mask.prefab
│ │ │ ├── mask.prefab.meta
│ │ │ ├── notify.prefab
│ │ │ ├── notify.prefab.meta
│ │ │ ├── wait.prefab
│ │ │ └── wait.prefab.meta
│ │ ├── texture.meta
│ │ └── texture
│ │ │ ├── auto-atlas.pac
│ │ │ ├── auto-atlas.pac.meta
│ │ │ ├── bg_window.png
│ │ │ ├── bg_window.png.meta
│ │ │ ├── btn_ok.png
│ │ │ ├── btn_ok.png.meta
│ │ │ ├── loading.png
│ │ │ ├── loading.png.meta
│ │ │ ├── role.meta
│ │ │ ├── toast.png
│ │ │ └── toast.png.meta
│ ├── config.json
│ ├── config.json.meta
│ ├── config.meta
│ ├── config
│ │ ├── game.meta
│ │ └── game
│ │ │ ├── Language.json
│ │ │ ├── Language.json.meta
│ │ │ ├── NetCode.json
│ │ │ ├── NetCode.json.meta
│ │ │ ├── PromptWindow.json
│ │ │ ├── PromptWindow.json.meta
│ │ │ ├── RoleJob.json
│ │ │ ├── RoleJob.json.meta
│ │ │ ├── RoleLevelUp.json
│ │ │ └── RoleLevelUp.json.meta
│ ├── content.meta
│ ├── content
│ │ ├── role.meta
│ │ └── role
│ │ │ ├── model1.atlas
│ │ │ ├── model1.atlas.meta
│ │ │ ├── model1.json
│ │ │ ├── model1.json.meta
│ │ │ ├── model1.png
│ │ │ └── model1.png.meta
│ ├── game.meta
│ ├── game
│ │ ├── animator.meta
│ │ ├── battle.meta
│ │ ├── battle
│ │ │ ├── animation.anim.meta
│ │ │ ├── animator.meta
│ │ │ ├── animator
│ │ │ │ ├── role.json
│ │ │ │ ├── role.json.meta
│ │ │ │ ├── role_edit.json
│ │ │ │ └── role_edit.json.meta
│ │ │ ├── role.prefab
│ │ │ └── role.prefab.meta
│ │ ├── product.meta
│ │ └── product
│ │ │ ├── oops-guide.png
│ │ │ ├── oops-guide.png.meta
│ │ │ ├── oops-hot-update.png
│ │ │ ├── oops-hot-update.png.meta
│ │ │ ├── oops-moba.png
│ │ │ ├── oops-moba.png.meta
│ │ │ ├── oops-net.png
│ │ │ ├── oops-net.png.meta
│ │ │ ├── oops-rpg-player2d.png
│ │ │ ├── oops-rpg-player2d.png.meta
│ │ │ ├── oops-rpg-player3d.png
│ │ │ ├── oops-rpg-player3d.png.meta
│ │ │ ├── oops-tiledmap.png
│ │ │ ├── oops-tiledmap.png.meta
│ │ │ ├── oops-turn-battle.png
│ │ │ ├── oops-turn-battle.png.meta
│ │ │ ├── oops-tutorial.png
│ │ │ ├── oops-tutorial.png.meta
│ │ │ ├── oops-war-chess.png
│ │ │ └── oops-war-chess.png.meta
│ ├── gui.meta
│ ├── gui
│ │ ├── prefab.meta
│ │ └── prefab
│ │ │ ├── demo.prefab
│ │ │ ├── demo.prefab.meta
│ │ │ ├── role_info.prefab
│ │ │ ├── role_info.prefab.meta
│ │ │ ├── role_info_base.prefab
│ │ │ └── role_info_base.prefab.meta
│ ├── language.meta
│ ├── language
│ │ ├── font.meta
│ │ ├── json.meta
│ │ ├── json
│ │ │ ├── en.json
│ │ │ ├── en.json.meta
│ │ │ ├── zh.json
│ │ │ └── zh.json.meta
│ │ ├── spine.meta
│ │ ├── spine
│ │ │ ├── en.meta
│ │ │ └── zh.meta
│ │ ├── texture.meta
│ │ └── texture
│ │ │ ├── en.meta
│ │ │ ├── en
│ │ │ ├── image.jpg
│ │ │ ├── image.jpg.meta
│ │ │ └── loading.meta
│ │ │ ├── zh.meta
│ │ │ └── zh
│ │ │ ├── image.jpg
│ │ │ ├── image.jpg.meta
│ │ │ └── loading.meta
│ ├── loading.meta
│ ├── loading
│ │ ├── loading.meta
│ │ ├── loading
│ │ │ ├── texture.meta
│ │ │ └── texture
│ │ │ │ ├── bg.png
│ │ │ │ ├── bg.png.meta
│ │ │ │ ├── icon_loading_bar.png
│ │ │ │ ├── icon_loading_bar.png.meta
│ │ │ │ ├── panel_loading_bottom_frame.png
│ │ │ │ └── panel_loading_bottom_frame.png.meta
│ │ ├── prefab.meta
│ │ └── prefab
│ │ │ ├── loading.prefab
│ │ │ └── loading.prefab.meta
│ ├── project.manifest
│ ├── project.manifest.meta
│ ├── version.manifest
│ └── version.manifest.meta
├── script.meta
└── script
│ ├── Main.ts
│ ├── Main.ts.meta
│ ├── game.meta
│ └── game
│ ├── account.meta
│ ├── account
│ ├── Account.ts
│ ├── Account.ts.meta
│ ├── AccountModelComp.ts.meta
│ ├── AccountNetDataComp.ts.meta
│ ├── bll.meta
│ ├── bll
│ │ ├── AccountNetData.ts
│ │ └── AccountNetData.ts.meta
│ ├── model.meta
│ ├── model
│ │ ├── AccountModelComp.ts
│ │ └── AccountModelComp.ts.meta
│ └── view.meta
│ ├── backup.meta
│ ├── common.meta
│ ├── common
│ ├── GameUIBase.ts.meta
│ ├── config.meta
│ ├── config
│ │ ├── GameEvent.ts
│ │ ├── GameEvent.ts.meta
│ │ ├── GameResPath.ts
│ │ ├── GameResPath.ts.meta
│ │ ├── GameUIConfig.ts
│ │ ├── GameUIConfig.ts.meta
│ │ ├── QueryConfig.ts.meta
│ │ └── UIConfig.ts.meta
│ ├── ecs.meta
│ ├── ecs
│ │ ├── SingletonModuleComp.ts
│ │ ├── SingletonModuleComp.ts.meta
│ │ ├── position.meta
│ │ └── position
│ │ │ ├── EcsPositionSystem.ts
│ │ │ ├── EcsPositionSystem.ts.meta
│ │ │ ├── MoveTo.ts
│ │ │ └── MoveTo.ts.meta
│ ├── prompt.meta
│ ├── prompt
│ │ ├── TipsManager.ts
│ │ └── TipsManager.ts.meta
│ ├── table.meta
│ └── table
│ │ ├── TableLanguage.ts
│ │ ├── TableLanguage.ts.meta
│ │ ├── TablePromptWindow.ts
│ │ ├── TablePromptWindow.ts.meta
│ │ ├── TableRoleJob.ts
│ │ ├── TableRoleJob.ts.meta
│ │ ├── TableRoleLevelUp.ts
│ │ └── TableRoleLevelUp.ts.meta
│ ├── demo.meta
│ ├── demo
│ ├── Demo.ts
│ ├── Demo.ts.meta
│ └── GameEvent.ts.meta
│ ├── initialize.meta
│ ├── initialize
│ ├── Initialize.ts
│ ├── Initialize.ts.meta
│ ├── LoadingViewComp.ts.meta
│ ├── bll.meta
│ ├── bll
│ │ ├── InitRes.ts
│ │ └── InitRes.ts.meta
│ ├── view.meta
│ └── view
│ │ ├── Hot.ts
│ │ ├── Hot.ts.meta
│ │ ├── HotUpdate.ts
│ │ ├── HotUpdate.ts.meta
│ │ ├── LoadingViewComp.ts
│ │ └── LoadingViewComp.ts.meta
│ ├── role.meta
│ ├── role
│ ├── Role.ts
│ ├── Role.ts.meta
│ ├── RoleEvent.ts
│ ├── RoleEvent.ts.meta
│ ├── bll.meta
│ ├── bll
│ │ ├── RoleBattle.ts.meta
│ │ ├── RoleChangeJob.ts
│ │ ├── RoleChangeJob.ts.meta
│ │ ├── RoleUpgrade.ts
│ │ ├── RoleUpgrade.ts.meta
│ │ ├── action.meta
│ │ ├── ai.meta
│ │ └── skill.meta
│ ├── model.meta
│ ├── model
│ │ ├── RoleCharacteristicModelComp.ts.meta
│ │ ├── RoleDescentModelComp.ts.meta
│ │ ├── RoleDrawSixModelComp.ts.meta
│ │ ├── RoleEnum.ts
│ │ ├── RoleEnum.ts.meta
│ │ ├── RoleEquipModelComp.ts.meta
│ │ ├── RoleFamilyModelComp.ts.meta
│ │ ├── RoleModelBaseComp.ts
│ │ ├── RoleModelBaseComp.ts.meta
│ │ ├── RoleModelComp.ts
│ │ ├── RoleModelComp.ts.meta
│ │ ├── RoleModelJobComp.ts
│ │ ├── RoleModelJobComp.ts.meta
│ │ ├── RoleModelLevelComp.ts
│ │ ├── RoleModelLevelComp.ts.meta
│ │ ├── RoleNobilityModelComp.ts.meta
│ │ ├── RoleSkillModelComp.ts.meta
│ │ ├── attribute.meta
│ │ └── attribute
│ │ │ ├── RoleNumeric.ts
│ │ │ ├── RoleNumeric.ts.meta
│ │ │ ├── RoleNumericMap.ts
│ │ │ └── RoleNumericMap.ts.meta
│ ├── view.meta
│ └── view
│ │ ├── AnimationEventHandler.ts.meta
│ │ ├── RoleStateAttack.ts.meta
│ │ ├── RoleStateDead.ts.meta
│ │ ├── RoleStateHit.ts.meta
│ │ ├── RoleViewAnimator.ts
│ │ ├── RoleViewAnimator.ts.meta
│ │ ├── RoleViewComp.ts
│ │ ├── RoleViewComp.ts.meta
│ │ ├── RoleViewController.ts
│ │ ├── RoleViewController.ts.meta
│ │ ├── RoleViewInfoComp.ts
│ │ ├── RoleViewInfoComp.ts.meta
│ │ ├── RoleViewLoader.ts
│ │ ├── RoleViewLoader.ts.meta
│ │ ├── animator.meta
│ │ ├── animator
│ │ ├── AnimationEventHandler.ts
│ │ ├── AnimationEventHandler.ts.meta
│ │ ├── RoleStateAttack.ts
│ │ ├── RoleStateAttack.ts.meta
│ │ ├── RoleStateDead.ts
│ │ ├── RoleStateDead.ts.meta
│ │ ├── RoleStateHit.ts
│ │ └── RoleStateHit.ts.meta
│ │ └── component.meta
│ └── skill.meta
├── doc
├── images
│ ├── editor1.png
│ ├── example1.gif
│ ├── operate1.gif
│ ├── operate2.gif
│ ├── operate3.gif
│ ├── operate4.gif
│ ├── runtime1.png
│ └── runtime2.png
├── img
│ ├── module.png
│ ├── oops-plug-in1.jpg
│ ├── oops-plug-in2.jpg
│ └── tools.jpg
└── using.md
├── excel
├── Language.xlsx
├── PromptWindow.xlsx
├── RoleJob.xlsx
└── RoleLevelUp.xlsx
├── package-lock.json
├── package.json
├── settings
├── logo.png
└── v2
│ └── packages
│ ├── builder.json
│ ├── cocos-service.json
│ ├── device.json
│ ├── engine.json
│ ├── information.json
│ ├── oops-plugin-excel-to-json.json
│ ├── program.json
│ ├── project.json
│ └── scene.json
├── tsconfig.json
├── update-oops-plugin-excel-to-json.bat
├── update-oops-plugin-excel-to-json.sh
├── update-oops-plugin-framework.bat
├── update-oops-plugin-framework.sh
├── update-oops-plugin-hot-update.bat
├── update-oops-plugin-hot-update.sh
└── yarn.lock
/.creator/asset-template/typescript/Custom Script Template Help Documentation.url:
--------------------------------------------------------------------------------
1 | [InternetShortcut]
2 | URL=https://docs.cocos.com/creator/manual/en/scripting/setup.html#custom-script-template
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | #///////////////////////////
3 | # Cocos Creator 3D Project
4 | #///////////////////////////
5 | oops-plugin-bundle/
6 | oops-plugin-framework/
7 | oops-plugin-hot-update/
8 | oops-plugin-excel-to-json/
9 | oops_framework_remote/
10 | library/
11 | temp/
12 | local/
13 | build/
14 | profiles/
15 | native
16 | #//////////////////////////
17 | # NPM
18 | #//////////////////////////
19 | # node_modules/
20 |
21 | #//////////////////////////
22 | # VSCode
23 | #//////////////////////////
24 | .vscode/
25 |
26 | #//////////////////////////
27 | # WebStorm
28 | #//////////////////////////
29 | .idea/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 dgflash
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |

3 |
4 |
5 |
19 |
20 | ### 概览
21 | Oops Framework 是一款基于 Cocos Creator 3.x 开发的游戏框架。自 2021 年 7 月开源起,它始终与 Cocos Creator 3.x 的各个版本保持同步更新。与此同时,该框架也在持续迭代版本,不断提升稳定性与易用性。
22 |
23 | ### 设计理念
24 | Oops Framework 致力于提供一个拥有游戏开发常用技术的框架,从而提高开发效率、降低开发门槛、专注于内容设计、促进技术共享和交流。
25 |
26 | ### 框架特点
27 | - 提供较为全面的游戏开发常用技术
28 | - 提供可提高开发效率的插件工具
29 | - 提供教学项目以及不同类型的解决方案项目
30 | - 拥有稳定可靠的框架技术
31 | - 对新人极为友好,操作简单且易于上手
32 |
33 | ### 官方推荐
34 | - Cocos 官方推荐框架
35 | - Cocos 官方2022年TOP10的插件工具
36 | - Cocos Creator 3.x 优秀开源框架
37 | - Cocos Creator 3.x 优秀开源框架盘点
38 |
39 | ### 框架文档
40 |
41 | ### 相关产品
42 |
43 | ### QQ群
44 | - 798575969(1群 - 满)
45 | - 621415300(2群 - 满)
46 | - 628575875(3群 - 满)
47 | - 226524184(4群 - 满)
48 | - 741197640(5群 - 满)
49 | - 438995424(6群 - 推荐)
50 |
51 | ### QQ频道:q366856bf5
--------------------------------------------------------------------------------
/assets/libs.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "717943ce-20e3-40c1-8de9-0d4df0757ddf",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/main.scene.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "scene",
4 | "imported": true,
5 | "uuid": "ba0b085f-f8d5-40b0-9964-2fd25728d707",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "11349493-059b-466d-8a63-bc29a4d895cd",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "isBundle": true,
10 | "bundleName": "resources",
11 | "priority": 8,
12 | "bundleConfigID": "auto_f0AlDAnxZIYrfsGv4UgfFf"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/assets/resources/audios.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "0fcfc2fc-e17a-4f43-a59b-8b97fc052429",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/audios/Gravel.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/audios/Gravel.mp3
--------------------------------------------------------------------------------
/assets/resources/audios/Gravel.mp3.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "importer": "audio-clip",
4 | "imported": true,
5 | "uuid": "b389ba94-1b8c-4e51-84c4-0ae55a3d5c99",
6 | "files": [
7 | ".json",
8 | ".mp3"
9 | ],
10 | "subMetas": {},
11 | "userData": {
12 | "downloadMode": 0
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/assets/resources/audios/nocturne.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/audios/nocturne.mp3
--------------------------------------------------------------------------------
/assets/resources/audios/nocturne.mp3.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "importer": "audio-clip",
4 | "imported": true,
5 | "uuid": "d0d4d969-8db9-4024-86e4-527d8b354ead",
6 | "files": [
7 | ".json",
8 | ".mp3"
9 | ],
10 | "subMetas": {},
11 | "userData": {
12 | "downloadMode": 0
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/assets/resources/avatar.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "0.0.1",
3 | "importer": "*",
4 | "imported": true,
5 | "uuid": "e702ec14-4b07-4a05-9908-de47767ed821",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/resources/common.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "b9dc5d89-1070-4f62-8a31-5b96306c192b",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/common/anim.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "0b70ab49-9f2b-4cbb-b4cb-849b2e477598",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/common/anim/button_scale_end.anim.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.3",
3 | "importer": "animation-clip",
4 | "imported": true,
5 | "uuid": "0430e564-9665-435e-9895-7b8e19fcb0b9",
6 | "files": [
7 | ".cconb"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "name": "button_scale_end"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/common/anim/button_scale_start.anim.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.3",
3 | "importer": "animation-clip",
4 | "imported": true,
5 | "uuid": "99c3c7ad-3086-4333-81e6-19b82da0c89d",
6 | "files": [
7 | ".cconb"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "name": "button_scale_start"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/common/anim/notify.anim.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.3",
3 | "importer": "animation-clip",
4 | "imported": true,
5 | "uuid": "4cecde51-d46d-4b20-b02e-e58f063ec56f",
6 | "files": [
7 | ".cconb"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "name": "notify"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/common/prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "853ce1af-fb40-4f30-aebb-f12234f3d7fe",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/common/prefab/alert.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "51127053-183b-41dc-b9d5-de54f6774526",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "alert"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/common/prefab/confirm.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "b2c7551a-2cd9-4ef0-beef-fdce5988ff03",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "confirm"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/common/prefab/mask.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "142393a8-2641-4775-a79c-cbfe1bd9e5ca",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "mask"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/common/prefab/notify.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "80f1f6cc-e3c7-4c99-8b81-1083aa66330a",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "notify"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/common/prefab/wait.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "9498d064-7cb5-4005-b470-3af693c28cc7",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "wait"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/common/texture.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "0489d8e2-9e0b-4c7e-b5ec-647a864e9214",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/common/texture/auto-atlas.pac:
--------------------------------------------------------------------------------
1 | {
2 | "__type__": "cc.SpriteAtlas"
3 | }
4 |
--------------------------------------------------------------------------------
/assets/resources/common/texture/auto-atlas.pac.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.8",
3 | "importer": "auto-atlas",
4 | "imported": true,
5 | "uuid": "9fa4ce44-23c1-4a20-9b6c-29623ff951af",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "maxWidth": 1024,
12 | "maxHeight": 1024,
13 | "padding": 2,
14 | "allowRotation": true,
15 | "forceSquared": false,
16 | "powerOfTwo": false,
17 | "algorithm": "MaxRects",
18 | "format": "png",
19 | "quality": 80,
20 | "contourBleed": true,
21 | "paddingBleed": true,
22 | "filterUnused": false,
23 | "compressSettings": {},
24 | "textureSetting": {
25 | "wrapModeS": "clamp-to-edge",
26 | "wrapModeT": "clamp-to-edge",
27 | "minfilter": "linear",
28 | "magfilter": "linear",
29 | "mipfilter": "none",
30 | "anisotropy": 1
31 | },
32 | "removeTextureInBundle": false,
33 | "removeImageInBundle": false,
34 | "removeSpriteAtlasInBundle": false
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/assets/resources/common/texture/bg_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/common/texture/bg_window.png
--------------------------------------------------------------------------------
/assets/resources/common/texture/bg_window.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "f9cfbca9-9f35-4dda-8925-64e34e6e9802",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "f9cfbca9-9f35-4dda-8925-64e34e6e9802@6c48a",
14 | "displayName": "bg_window",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "ver": "1.0.22",
18 | "imported": true,
19 | "files": [
20 | ".json"
21 | ],
22 | "subMetas": {},
23 | "userData": {
24 | "wrapModeS": "clamp-to-edge",
25 | "wrapModeT": "clamp-to-edge",
26 | "minfilter": "linear",
27 | "magfilter": "linear",
28 | "mipfilter": "none",
29 | "premultiplyAlpha": false,
30 | "anisotropy": 1,
31 | "isUuid": true,
32 | "imageUuidOrDatabaseUri": "f9cfbca9-9f35-4dda-8925-64e34e6e9802",
33 | "visible": false
34 | }
35 | },
36 | "f9941": {
37 | "importer": "sprite-frame",
38 | "uuid": "f9cfbca9-9f35-4dda-8925-64e34e6e9802@f9941",
39 | "displayName": "bg_window",
40 | "id": "f9941",
41 | "name": "spriteFrame",
42 | "ver": "1.0.12",
43 | "imported": true,
44 | "files": [
45 | ".json"
46 | ],
47 | "subMetas": {},
48 | "userData": {
49 | "trimType": "auto",
50 | "trimThreshold": 1,
51 | "rotated": false,
52 | "offsetX": 0,
53 | "offsetY": 0,
54 | "trimX": 0,
55 | "trimY": 0,
56 | "width": 478,
57 | "height": 320,
58 | "rawWidth": 478,
59 | "rawHeight": 320,
60 | "borderTop": 0,
61 | "borderBottom": 0,
62 | "borderLeft": 0,
63 | "borderRight": 0,
64 | "isUuid": true,
65 | "imageUuidOrDatabaseUri": "f9cfbca9-9f35-4dda-8925-64e34e6e9802@6c48a",
66 | "atlasUuid": "",
67 | "packable": true,
68 | "pixelsToUnit": 100,
69 | "pivotX": 0.5,
70 | "pivotY": 0.5,
71 | "meshType": 0,
72 | "vertices": {
73 | "rawPosition": [
74 | -239,
75 | -160,
76 | 0,
77 | 239,
78 | -160,
79 | 0,
80 | -239,
81 | 160,
82 | 0,
83 | 239,
84 | 160,
85 | 0
86 | ],
87 | "indexes": [
88 | 0,
89 | 1,
90 | 2,
91 | 2,
92 | 1,
93 | 3
94 | ],
95 | "uv": [
96 | 0,
97 | 320,
98 | 478,
99 | 320,
100 | 0,
101 | 0,
102 | 478,
103 | 0
104 | ],
105 | "nuv": [
106 | 0,
107 | 0,
108 | 1,
109 | 0,
110 | 0,
111 | 1,
112 | 1,
113 | 1
114 | ],
115 | "minPos": [
116 | -239,
117 | -160,
118 | 0
119 | ],
120 | "maxPos": [
121 | 239,
122 | 160,
123 | 0
124 | ]
125 | }
126 | }
127 | }
128 | },
129 | "userData": {
130 | "type": "sprite-frame",
131 | "redirect": "f9cfbca9-9f35-4dda-8925-64e34e6e9802@6c48a",
132 | "hasAlpha": true,
133 | "fixAlphaTransparencyArtifacts": false
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/assets/resources/common/texture/btn_ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/common/texture/btn_ok.png
--------------------------------------------------------------------------------
/assets/resources/common/texture/btn_ok.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "56a0bfc3-686d-4e85-bb26-5f5a6855ae06",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "56a0bfc3-686d-4e85-bb26-5f5a6855ae06@6c48a",
14 | "displayName": "btn_ok",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "ver": "1.0.22",
18 | "imported": true,
19 | "files": [
20 | ".json"
21 | ],
22 | "subMetas": {},
23 | "userData": {
24 | "wrapModeS": "clamp-to-edge",
25 | "wrapModeT": "clamp-to-edge",
26 | "minfilter": "linear",
27 | "magfilter": "linear",
28 | "mipfilter": "none",
29 | "premultiplyAlpha": false,
30 | "anisotropy": 1,
31 | "isUuid": true,
32 | "imageUuidOrDatabaseUri": "56a0bfc3-686d-4e85-bb26-5f5a6855ae06",
33 | "visible": false
34 | }
35 | },
36 | "f9941": {
37 | "importer": "sprite-frame",
38 | "uuid": "56a0bfc3-686d-4e85-bb26-5f5a6855ae06@f9941",
39 | "displayName": "btn_ok",
40 | "id": "f9941",
41 | "name": "spriteFrame",
42 | "ver": "1.0.12",
43 | "imported": true,
44 | "files": [
45 | ".json"
46 | ],
47 | "subMetas": {},
48 | "userData": {
49 | "trimType": "auto",
50 | "trimThreshold": 1,
51 | "rotated": false,
52 | "offsetX": 0,
53 | "offsetY": 0,
54 | "trimX": 0,
55 | "trimY": 0,
56 | "width": 117,
57 | "height": 53,
58 | "rawWidth": 117,
59 | "rawHeight": 53,
60 | "borderTop": 0,
61 | "borderBottom": 0,
62 | "borderLeft": 0,
63 | "borderRight": 0,
64 | "isUuid": true,
65 | "imageUuidOrDatabaseUri": "56a0bfc3-686d-4e85-bb26-5f5a6855ae06@6c48a",
66 | "atlasUuid": "",
67 | "packable": true,
68 | "pixelsToUnit": 100,
69 | "pivotX": 0.5,
70 | "pivotY": 0.5,
71 | "meshType": 0,
72 | "vertices": {
73 | "rawPosition": [
74 | -58.5,
75 | -26.5,
76 | 0,
77 | 58.5,
78 | -26.5,
79 | 0,
80 | -58.5,
81 | 26.5,
82 | 0,
83 | 58.5,
84 | 26.5,
85 | 0
86 | ],
87 | "indexes": [
88 | 0,
89 | 1,
90 | 2,
91 | 2,
92 | 1,
93 | 3
94 | ],
95 | "uv": [
96 | 0,
97 | 53,
98 | 117,
99 | 53,
100 | 0,
101 | 0,
102 | 117,
103 | 0
104 | ],
105 | "nuv": [
106 | 0,
107 | 0,
108 | 1,
109 | 0,
110 | 0,
111 | 1,
112 | 1,
113 | 1
114 | ],
115 | "minPos": [
116 | -58.5,
117 | -26.5,
118 | 0
119 | ],
120 | "maxPos": [
121 | 58.5,
122 | 26.5,
123 | 0
124 | ]
125 | }
126 | }
127 | }
128 | },
129 | "userData": {
130 | "type": "sprite-frame",
131 | "redirect": "56a0bfc3-686d-4e85-bb26-5f5a6855ae06@6c48a",
132 | "hasAlpha": true,
133 | "fixAlphaTransparencyArtifacts": false
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/assets/resources/common/texture/loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/common/texture/loading.png
--------------------------------------------------------------------------------
/assets/resources/common/texture/loading.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "06942a20-0474-4385-9a85-293366d2473e",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "06942a20-0474-4385-9a85-293366d2473e@6c48a",
14 | "displayName": "loading",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "ver": "1.0.22",
18 | "imported": true,
19 | "files": [
20 | ".json"
21 | ],
22 | "subMetas": {},
23 | "userData": {
24 | "wrapModeS": "clamp-to-edge",
25 | "wrapModeT": "clamp-to-edge",
26 | "minfilter": "linear",
27 | "magfilter": "linear",
28 | "mipfilter": "none",
29 | "premultiplyAlpha": false,
30 | "anisotropy": 1,
31 | "isUuid": true,
32 | "imageUuidOrDatabaseUri": "06942a20-0474-4385-9a85-293366d2473e",
33 | "visible": false
34 | }
35 | },
36 | "f9941": {
37 | "importer": "sprite-frame",
38 | "uuid": "06942a20-0474-4385-9a85-293366d2473e@f9941",
39 | "displayName": "loading",
40 | "id": "f9941",
41 | "name": "spriteFrame",
42 | "ver": "1.0.12",
43 | "imported": true,
44 | "files": [
45 | ".json"
46 | ],
47 | "subMetas": {},
48 | "userData": {
49 | "trimType": "auto",
50 | "trimThreshold": 1,
51 | "rotated": false,
52 | "offsetX": 0,
53 | "offsetY": 0,
54 | "trimX": 0,
55 | "trimY": 0,
56 | "width": 138,
57 | "height": 138,
58 | "rawWidth": 138,
59 | "rawHeight": 138,
60 | "borderTop": 0,
61 | "borderBottom": 0,
62 | "borderLeft": 0,
63 | "borderRight": 0,
64 | "isUuid": true,
65 | "imageUuidOrDatabaseUri": "06942a20-0474-4385-9a85-293366d2473e@6c48a",
66 | "atlasUuid": "",
67 | "packable": true,
68 | "pixelsToUnit": 100,
69 | "pivotX": 0.5,
70 | "pivotY": 0.5,
71 | "meshType": 0,
72 | "vertices": {
73 | "rawPosition": [
74 | -69,
75 | -69,
76 | 0,
77 | 69,
78 | -69,
79 | 0,
80 | -69,
81 | 69,
82 | 0,
83 | 69,
84 | 69,
85 | 0
86 | ],
87 | "indexes": [
88 | 0,
89 | 1,
90 | 2,
91 | 2,
92 | 1,
93 | 3
94 | ],
95 | "uv": [
96 | 0,
97 | 138,
98 | 138,
99 | 138,
100 | 0,
101 | 0,
102 | 138,
103 | 0
104 | ],
105 | "nuv": [
106 | 0,
107 | 0,
108 | 1,
109 | 0,
110 | 0,
111 | 1,
112 | 1,
113 | 1
114 | ],
115 | "minPos": [
116 | -69,
117 | -69,
118 | 0
119 | ],
120 | "maxPos": [
121 | 69,
122 | 69,
123 | 0
124 | ]
125 | }
126 | }
127 | }
128 | },
129 | "userData": {
130 | "type": "sprite-frame",
131 | "redirect": "06942a20-0474-4385-9a85-293366d2473e@6c48a",
132 | "hasAlpha": true,
133 | "fixAlphaTransparencyArtifacts": false
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/assets/resources/common/texture/role.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "d7a109d3-8659-4487-a915-2c38b3d88f58",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/common/texture/toast.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/common/texture/toast.png
--------------------------------------------------------------------------------
/assets/resources/common/texture/toast.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "ef58b575-d5bd-4b6b-ac05-6364e90ff8fc",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "ef58b575-d5bd-4b6b-ac05-6364e90ff8fc@6c48a",
14 | "displayName": "toast",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "ver": "1.0.22",
18 | "imported": true,
19 | "files": [
20 | ".json"
21 | ],
22 | "subMetas": {},
23 | "userData": {
24 | "wrapModeS": "clamp-to-edge",
25 | "wrapModeT": "clamp-to-edge",
26 | "minfilter": "linear",
27 | "magfilter": "linear",
28 | "mipfilter": "none",
29 | "premultiplyAlpha": false,
30 | "anisotropy": 1,
31 | "isUuid": true,
32 | "imageUuidOrDatabaseUri": "ef58b575-d5bd-4b6b-ac05-6364e90ff8fc",
33 | "visible": false
34 | }
35 | },
36 | "f9941": {
37 | "importer": "sprite-frame",
38 | "uuid": "ef58b575-d5bd-4b6b-ac05-6364e90ff8fc@f9941",
39 | "displayName": "toast",
40 | "id": "f9941",
41 | "name": "spriteFrame",
42 | "ver": "1.0.12",
43 | "imported": true,
44 | "files": [
45 | ".json"
46 | ],
47 | "subMetas": {},
48 | "userData": {
49 | "trimType": "auto",
50 | "trimThreshold": 1,
51 | "rotated": false,
52 | "offsetX": 0.5,
53 | "offsetY": 0,
54 | "trimX": 6,
55 | "trimY": 0,
56 | "width": 528,
57 | "height": 90,
58 | "rawWidth": 539,
59 | "rawHeight": 90,
60 | "borderTop": 0,
61 | "borderBottom": 0,
62 | "borderLeft": 0,
63 | "borderRight": 0,
64 | "isUuid": true,
65 | "imageUuidOrDatabaseUri": "ef58b575-d5bd-4b6b-ac05-6364e90ff8fc@6c48a",
66 | "atlasUuid": "",
67 | "packable": true,
68 | "pixelsToUnit": 100,
69 | "pivotX": 0.5,
70 | "pivotY": 0.5,
71 | "meshType": 0,
72 | "vertices": {
73 | "rawPosition": [
74 | -264,
75 | -45,
76 | 0,
77 | 264,
78 | -45,
79 | 0,
80 | -264,
81 | 45,
82 | 0,
83 | 264,
84 | 45,
85 | 0
86 | ],
87 | "indexes": [
88 | 0,
89 | 1,
90 | 2,
91 | 2,
92 | 1,
93 | 3
94 | ],
95 | "uv": [
96 | 6,
97 | 90,
98 | 534,
99 | 90,
100 | 6,
101 | 0,
102 | 534,
103 | 0
104 | ],
105 | "nuv": [
106 | 0.011131725417439703,
107 | 0,
108 | 0.9907235621521335,
109 | 0,
110 | 0.011131725417439703,
111 | 1,
112 | 0.9907235621521335,
113 | 1
114 | ],
115 | "minPos": [
116 | -264,
117 | -45,
118 | 0
119 | ],
120 | "maxPos": [
121 | 264,
122 | 45,
123 | 0
124 | ]
125 | }
126 | }
127 | }
128 | },
129 | "userData": {
130 | "type": "sprite-frame",
131 | "redirect": "ef58b575-d5bd-4b6b-ac05-6364e90ff8fc@6c48a",
132 | "hasAlpha": true,
133 | "fixAlphaTransparencyArtifacts": false
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/assets/resources/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "config": {
3 | "version": "1.0.5",
4 | "package": "com.oops.game",
5 | "localDataKey": "oops",
6 | "localDataIv": "framework",
7 | "httpServer": "http://192.168.0.150/main/",
8 | "httpTimeout": 10000,
9 | "frameRate": "60",
10 | "loadingTimeoutGui": 1000,
11 | "webSocketIp": "127.0.0.1",
12 | "webSocketProt": "8081",
13 | "webSocketHeartTime": 6000,
14 | "webSocketReceiveTime": 10000,
15 | "webSocketReconnetTimeOut": 3000
16 | },
17 | "gui": [
18 | {
19 | "name": "LayerGame",
20 | "type": "Node"
21 | },
22 | {
23 | "name": "LayerUI",
24 | "type": "UI"
25 | },
26 | {
27 | "name": "LayerPopUp",
28 | "type": "PopUp"
29 | },
30 | {
31 | "name": "LayerDialog",
32 | "type": "Dialog"
33 | },
34 | {
35 | "name": "LayerSystem",
36 | "type": "Dialog"
37 | },
38 | {
39 | "name": "LayerNotify",
40 | "type": "Notify"
41 | },
42 | {
43 | "name": "LayerGuide",
44 | "type": "Node"
45 | }
46 | ],
47 | "language": {
48 | "default": "zh",
49 | "type": [
50 | "zh",
51 | "en"
52 | ],
53 | "path": {
54 | "json": "language/json",
55 | "texture": "language/texture",
56 | "spine": ""
57 | }
58 | },
59 | "bundle": {
60 | "enable": false,
61 | "server": "http://localhost",
62 | "default": "resources",
63 | "packages": {
64 | "bundle": ""
65 | }
66 | }
67 | }
--------------------------------------------------------------------------------
/assets/resources/config.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "0f8f84c7-5a96-49fe-a127-f66d9c90c822",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/config.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "11938e97-a8b3-4375-9632-5313d684e918",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/config/game.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "a2c06fee-9cbe-4e3b-b9ff-a29cdd9e6646",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/config/game/Language.json:
--------------------------------------------------------------------------------
1 | {"role_level_up":{"zh":"升级","en":"Upgrade"},"role_attack":{"zh":"攻击","en":"Attack"}}
--------------------------------------------------------------------------------
/assets/resources/config/game/Language.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "b92e9be8-b6df-4e15-8b4b-16326a243229",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/config/game/NetCode.json:
--------------------------------------------------------------------------------
1 | {
2 | "1": {
3 | "describe": "成功"
4 | },
5 | "2": {
6 | "describe": "服务器错误"
7 | },
8 | "3": {
9 | "describe": "数据库错误"
10 | }
11 | }
--------------------------------------------------------------------------------
/assets/resources/config/game/NetCode.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "632275d6-db6d-4335-9d55-31da137fb8f6",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/config/game/PromptWindow.json:
--------------------------------------------------------------------------------
1 | {"1":{"2":{"3":{"title":"系统提示","describe":"服务器正在更新,请稍后!","array":{"a":1,"b":"abc"},"hp":1}}},"2":{"1":{"1":{"title":"断网提示","describe":"网络异常","array":{"a":1},"hp":2}}}}
--------------------------------------------------------------------------------
/assets/resources/config/game/PromptWindow.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "f563a1f3-e357-40cf-9fdb-28ad8b1b1d1d",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/config/game/RoleJob.json:
--------------------------------------------------------------------------------
1 | {"1":{"armsName":"剑客","weaponType":[1],"power":8,"agile":2},"5":{"armsName":"刺客","weaponType":[10,11,12],"power":5,"agile":10},"9":{"armsName":"长弓手","weaponType":[5],"power":5,"agile":8}}
--------------------------------------------------------------------------------
/assets/resources/config/game/RoleJob.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "ff18f0c9-550b-4e48-aca8-d37fe1d2b510",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/config/game/RoleLevelUp.json:
--------------------------------------------------------------------------------
1 | {"1":{"needexp":0,"hp":5},"2":{"needexp":10,"hp":6},"3":{"needexp":30,"hp":6},"4":{"needexp":70,"hp":7},"5":{"needexp":110,"hp":7},"6":{"needexp":170,"hp":8},"7":{"needexp":240,"hp":8},"8":{"needexp":320,"hp":9},"9":{"needexp":420,"hp":9},"10":{"needexp":520,"hp":10},"11":{"needexp":640,"hp":10},"12":{"needexp":770,"hp":11},"13":{"needexp":920,"hp":11},"14":{"needexp":1080,"hp":12},"15":{"needexp":1250,"hp":13},"16":{"needexp":1440,"hp":14},"17":{"needexp":1640,"hp":15},"18":{"needexp":1860,"hp":16},"19":{"needexp":2090,"hp":17},"20":{"needexp":2330,"hp":18},"21":{"needexp":2590,"hp":19},"22":{"needexp":2870,"hp":20},"23":{"needexp":3150,"hp":21},"24":{"needexp":3460,"hp":22},"25":{"needexp":3770,"hp":23},"26":{"needexp":4110,"hp":24},"27":{"needexp":4450,"hp":25},"28":{"needexp":4820,"hp":26},"29":{"needexp":5190,"hp":27},"30":{"needexp":5590,"hp":28},"31":{"needexp":5990,"hp":29},"32":{"needexp":6420,"hp":31},"33":{"needexp":6860,"hp":32},"34":{"needexp":7310,"hp":34},"35":{"needexp":7780,"hp":35},"36":{"needexp":8270,"hp":37},"37":{"needexp":8770,"hp":38},"38":{"needexp":9290,"hp":40},"39":{"needexp":9820,"hp":41},"40":{"needexp":10370,"hp":43},"41":{"needexp":10940,"hp":44},"42":{"needexp":11520,"hp":46},"43":{"needexp":12120,"hp":47},"44":{"needexp":12730,"hp":49},"45":{"needexp":13360,"hp":50},"46":{"needexp":14010,"hp":52},"47":{"needexp":14670,"hp":53},"48":{"needexp":15350,"hp":55},"49":{"needexp":16050,"hp":56},"50":{"needexp":16760,"hp":58},"51":{"needexp":17490,"hp":59},"52":{"needexp":18240,"hp":61},"53":{"needexp":19000,"hp":63},"54":{"needexp":19780,"hp":64},"55":{"needexp":20580,"hp":66},"56":{"needexp":21390,"hp":68},"57":{"needexp":22220,"hp":69},"58":{"needexp":23070,"hp":71},"59":{"needexp":23930,"hp":73},"60":{"needexp":24810,"hp":74},"61":{"needexp":25710,"hp":76},"62":{"needexp":26620,"hp":78},"63":{"needexp":27560,"hp":79},"64":{"needexp":28500,"hp":81},"65":{"needexp":29470,"hp":83},"66":{"needexp":30450,"hp":84},"67":{"needexp":31460,"hp":86},"68":{"needexp":32470,"hp":88},"69":{"needexp":33510,"hp":90},"70":{"needexp":34560,"hp":92},"71":{"needexp":35630,"hp":94},"72":{"needexp":36720,"hp":96},"73":{"needexp":37830,"hp":98},"74":{"needexp":38950,"hp":100},"75":{"needexp":40090,"hp":102},"76":{"needexp":41250,"hp":104},"77":{"needexp":42420,"hp":106},"78":{"needexp":43620,"hp":108},"79":{"needexp":44830,"hp":110},"80":{"needexp":46060,"hp":112},"81":{"needexp":47300,"hp":114},"82":{"needexp":48570,"hp":116},"83":{"needexp":49850,"hp":118},"84":{"needexp":51150,"hp":120},"85":{"needexp":52470,"hp":122},"86":{"needexp":53810,"hp":125},"87":{"needexp":55160,"hp":128},"88":{"needexp":56530,"hp":131},"89":{"needexp":57920,"hp":134},"90":{"needexp":59330,"hp":137},"91":{"needexp":60760,"hp":140},"92":{"needexp":62200,"hp":143},"93":{"needexp":63670,"hp":146},"94":{"needexp":65150,"hp":149},"95":{"needexp":66650,"hp":152},"96":{"needexp":68160,"hp":155},"97":{"needexp":69700,"hp":158},"98":{"needexp":71250,"hp":161},"99":{"needexp":72830,"hp":164},"100":{"needexp":74420,"hp":167}}
--------------------------------------------------------------------------------
/assets/resources/config/game/RoleLevelUp.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "11a2f047-e929-4f50-8df1-d31311013e88",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/content.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "6c5ced24-3b16-49f5-9161-12d9073266f1",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/content/role.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "9bea5434-14f3-46ad-aa83-5bb06d7450a9",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/content/role/model1.atlas.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "importer": "*",
4 | "imported": true,
5 | "uuid": "34c4dead-1166-4a46-ab10-efba80c0e2ed",
6 | "files": [
7 | ".atlas",
8 | ".json"
9 | ],
10 | "subMetas": {},
11 | "userData": {}
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/content/role/model1.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.6",
3 | "importer": "spine-data",
4 | "imported": true,
5 | "uuid": "04254b30-9771-4e13-b7cc-888a0f812a1d",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/content/role/model1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/content/role/model1.png
--------------------------------------------------------------------------------
/assets/resources/content/role/model1.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "f1358af2-8b3d-4816-ae38-bc2a2d38105f",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "f1358af2-8b3d-4816-ae38-bc2a2d38105f@6c48a",
14 | "displayName": "model1",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "imageUuidOrDatabaseUri": "f1358af2-8b3d-4816-ae38-bc2a2d38105f",
21 | "minfilter": "linear",
22 | "magfilter": "linear",
23 | "mipfilter": "none",
24 | "anisotropy": 0,
25 | "isUuid": true,
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "f1358af2-8b3d-4816-ae38-bc2a2d38105f@f9941",
38 | "displayName": "model1",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 1078,
50 | "height": 221,
51 | "rawWidth": 1078,
52 | "rawHeight": 221,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "isUuid": true,
59 | "imageUuidOrDatabaseUri": "f1358af2-8b3d-4816-ae38-bc2a2d38105f@6c48a",
60 | "atlasUuid": "",
61 | "pixelsToUnit": 100,
62 | "pivotX": 0.5,
63 | "pivotY": 0.5,
64 | "meshType": 0,
65 | "vertices": {
66 | "rawPosition": [
67 | -539,
68 | -110.5,
69 | 0,
70 | 539,
71 | -110.5,
72 | 0,
73 | -539,
74 | 110.5,
75 | 0,
76 | 539,
77 | 110.5,
78 | 0
79 | ],
80 | "indexes": [
81 | 0,
82 | 1,
83 | 2,
84 | 2,
85 | 1,
86 | 3
87 | ],
88 | "uv": [
89 | 0,
90 | 221,
91 | 1078,
92 | 221,
93 | 0,
94 | 0,
95 | 1078,
96 | 0
97 | ],
98 | "nuv": [
99 | 0,
100 | 0,
101 | 1,
102 | 0,
103 | 0,
104 | 1,
105 | 1,
106 | 1
107 | ],
108 | "minPos": [
109 | -539,
110 | -110.5,
111 | 0
112 | ],
113 | "maxPos": [
114 | 539,
115 | 110.5,
116 | 0
117 | ]
118 | }
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "type": "sprite-frame",
130 | "hasAlpha": true,
131 | "redirect": "f1358af2-8b3d-4816-ae38-bc2a2d38105f@6c48a",
132 | "fixAlphaTransparencyArtifacts": false
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "ce4f2740-a8dc-47cd-a6a0-2f1b5b45128a",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/game/animator.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "b7e0d1ee-a6fc-4457-b909-6aa5b3a12c58",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/game/battle.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "b7e2a06d-a8e7-4208-bbda-b4ad8affd938",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/game/battle/animation.anim.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.11",
3 | "importer": "animation-clip",
4 | "imported": true,
5 | "uuid": "8fbe8871-9894-4a43-8997-64adfbec8422",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "name": "animation"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/game/battle/animator.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "befdfac8-df73-46ea-b225-e7e878cccebc",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/game/battle/animator/role.json:
--------------------------------------------------------------------------------
1 | {"defaultState":"Idle","anyState":{"transitions":[]},"states":[{"state":"Idle","motion":"Idle","speed":1,"multiplier":"","loop":true,"transitions":[{"toState":"Dead","hasExitTime":false,"conditions":[{"param":"Dead","value":0,"logic":0}]},{"toState":"Attack","hasExitTime":false,"conditions":[{"param":"Attack","value":0,"logic":0}]},{"toState":"AttackSpecial","hasExitTime":false,"conditions":[{"param":"AttackSpecial","value":0,"logic":0}]},{"toState":"AttackCritical","hasExitTime":false,"conditions":[{"param":"AttackCritical","value":0,"logic":0}]},{"toState":"Magic","hasExitTime":false,"conditions":[{"param":"Magic","value":0,"logic":0}]},{"toState":"Parry","hasExitTime":false,"conditions":[{"param":"Parry","value":0,"logic":0}]},{"toState":"Block","hasExitTime":false,"conditions":[{"param":"Block","value":0,"logic":0}]},{"toState":"Skew","hasExitTime":false,"conditions":[{"param":"Skew","value":0,"logic":0}]},{"toState":"Hurt","hasExitTime":false,"conditions":[{"param":"Hurt","value":0,"logic":0}]}]},{"state":"Attack","motion":"Attack","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"state":"AttackSpecial","motion":"AttackSpecial","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"state":"AttackCritical","motion":"AttackCritical","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"state":"Magic","motion":"Magic","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"state":"Parry","motion":"Parry","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"state":"Block","motion":"Block","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"state":"Hurt","motion":"Hurt","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"state":"Skew","motion":"Skew","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"state":"Dead","motion":"Dead","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":false,"conditions":[{"param":"Idle","value":0,"logic":0}]}]}],"parameters":[{"param":"Idle","type":3,"init":0},{"param":"Attack","type":3,"init":0},{"param":"AttackSpecial","type":3,"init":0},{"param":"AttackCritical","type":3,"init":0},{"param":"Magic","type":3,"init":0},{"param":"Parry","type":3,"init":0},{"param":"Block","type":3,"init":0},{"param":"Skew","type":3,"init":0},{"param":"Hurt","type":3,"init":0},{"param":"Dead","type":3,"init":0}]}
--------------------------------------------------------------------------------
/assets/resources/game/battle/animator/role.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "6ee5f40e-b1b2-47a9-b428-4147a1bd955a",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/game/battle/animator/role_edit.json:
--------------------------------------------------------------------------------
1 | {"animator":"1.0.0","mainStateMachine":{"layerPos":[0,0],"layerScale":1,"anyStatePos":[-690,30],"subStates":["Idle","Attack","AttackSpecial","AttackCritical","Magic","Parry","Block","Hurt","Skew","Dead"],"subStateMachines":[]},"subStateMachines":[],"defaultState":"Idle","anyState":{"transitions":[]},"states":[{"position":[-300,30],"upStateMachine":"BaseLayer","state":"Idle","motion":"Idle","speed":1,"multiplier":"","loop":true,"transitions":[{"toState":"Dead","hasExitTime":false,"conditions":[{"param":"Dead","value":0,"logic":0}]},{"toState":"Attack","hasExitTime":false,"conditions":[{"param":"Attack","value":0,"logic":0}]},{"toState":"AttackSpecial","hasExitTime":false,"conditions":[{"param":"AttackSpecial","value":0,"logic":0}]},{"toState":"AttackCritical","hasExitTime":false,"conditions":[{"param":"AttackCritical","value":0,"logic":0}]},{"toState":"Magic","hasExitTime":false,"conditions":[{"param":"Magic","value":0,"logic":0}]},{"toState":"Parry","hasExitTime":false,"conditions":[{"param":"Parry","value":0,"logic":0}]},{"toState":"Block","hasExitTime":false,"conditions":[{"param":"Block","value":0,"logic":0}]},{"toState":"Skew","hasExitTime":false,"conditions":[{"param":"Skew","value":0,"logic":0}]},{"toState":"Hurt","hasExitTime":false,"conditions":[{"param":"Hurt","value":0,"logic":0}]}]},{"position":[-300,-150],"upStateMachine":"BaseLayer","state":"Attack","motion":"Attack","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"position":[60,-150],"upStateMachine":"BaseLayer","state":"AttackSpecial","motion":"AttackSpecial","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"position":[420,-150],"upStateMachine":"BaseLayer","state":"AttackCritical","motion":"AttackCritical","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"position":[-660,-150],"upStateMachine":"BaseLayer","state":"Magic","motion":"Magic","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"position":[-300,210],"upStateMachine":"BaseLayer","state":"Parry","motion":"Parry","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"position":[60,210],"upStateMachine":"BaseLayer","state":"Block","motion":"Block","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"position":[-660,210],"upStateMachine":"BaseLayer","state":"Hurt","motion":"Hurt","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"position":[420,210],"upStateMachine":"BaseLayer","state":"Skew","motion":"Skew","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":true,"conditions":[]}]},{"position":[240,30],"upStateMachine":"BaseLayer","state":"Dead","motion":"Dead","speed":1,"multiplier":"","loop":false,"transitions":[{"toState":"Idle","hasExitTime":false,"conditions":[{"param":"Idle","value":0,"logic":0}]}]}],"parameters":[{"param":"Idle","type":3,"init":0},{"param":"Attack","type":3,"init":0},{"param":"AttackSpecial","type":3,"init":0},{"param":"AttackCritical","type":3,"init":0},{"param":"Magic","type":3,"init":0},{"param":"Parry","type":3,"init":0},{"param":"Block","type":3,"init":0},{"param":"Skew","type":3,"init":0},{"param":"Hurt","type":3,"init":0},{"param":"Dead","type":3,"init":0}]}
--------------------------------------------------------------------------------
/assets/resources/game/battle/animator/role_edit.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "98a3dad2-3c6c-48ba-a625-1f065ef308cd",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/game/battle/role.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "6b14b71e-74ef-4af5-9375-546472b45751",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "role"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/game/product.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "14998ae6-7e09-451e-bfa7-63ff55647567",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-guide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-guide.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-guide.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "225a80ed-d82f-416a-900d-438675d18170",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "225a80ed-d82f-416a-900d-438675d18170@6c48a",
14 | "displayName": "oops-guide",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "225a80ed-d82f-416a-900d-438675d18170",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "225a80ed-d82f-416a-900d-438675d18170@f9941",
38 | "displayName": "oops-guide",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 256,
50 | "height": 256,
51 | "rawWidth": 256,
52 | "rawHeight": 256,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -128,
65 | -128,
66 | 0,
67 | 128,
68 | -128,
69 | 0,
70 | -128,
71 | 128,
72 | 0,
73 | 128,
74 | 128,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 256,
88 | 256,
89 | 256,
90 | 0,
91 | 0,
92 | 256,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -128,
107 | -128,
108 | 0
109 | ],
110 | "maxPos": [
111 | 128,
112 | 128,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "225a80ed-d82f-416a-900d-438675d18170@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "225a80ed-d82f-416a-900d-438675d18170@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-hot-update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-hot-update.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-hot-update.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "d3de4991-3456-4787-8186-1b548039579c",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "d3de4991-3456-4787-8186-1b548039579c@6c48a",
14 | "displayName": "oops-hot-update",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "d3de4991-3456-4787-8186-1b548039579c",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "d3de4991-3456-4787-8186-1b548039579c@f9941",
38 | "displayName": "oops-hot-update",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 600,
50 | "height": 450,
51 | "rawWidth": 600,
52 | "rawHeight": 450,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -300,
65 | -225,
66 | 0,
67 | 300,
68 | -225,
69 | 0,
70 | -300,
71 | 225,
72 | 0,
73 | 300,
74 | 225,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 450,
88 | 600,
89 | 450,
90 | 0,
91 | 0,
92 | 600,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -300,
107 | -225,
108 | 0
109 | ],
110 | "maxPos": [
111 | 300,
112 | 225,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "d3de4991-3456-4787-8186-1b548039579c@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "d3de4991-3456-4787-8186-1b548039579c@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-moba.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-moba.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-moba.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "6c1b17dd-cee8-411b-a947-91300be76807",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "6c1b17dd-cee8-411b-a947-91300be76807@6c48a",
14 | "displayName": "oops-moba",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "6c1b17dd-cee8-411b-a947-91300be76807",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "6c1b17dd-cee8-411b-a947-91300be76807@f9941",
38 | "displayName": "oops-moba",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 400,
50 | "height": 300,
51 | "rawWidth": 400,
52 | "rawHeight": 300,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -200,
65 | -150,
66 | 0,
67 | 200,
68 | -150,
69 | 0,
70 | -200,
71 | 150,
72 | 0,
73 | 200,
74 | 150,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 300,
88 | 400,
89 | 300,
90 | 0,
91 | 0,
92 | 400,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -200,
107 | -150,
108 | 0
109 | ],
110 | "maxPos": [
111 | 200,
112 | 150,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "6c1b17dd-cee8-411b-a947-91300be76807@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "6c1b17dd-cee8-411b-a947-91300be76807@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-net.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-net.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-net.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "4b10079c-763d-40a9-b288-199e0a08bbef",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "4b10079c-763d-40a9-b288-199e0a08bbef@6c48a",
14 | "displayName": "oops-net",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "4b10079c-763d-40a9-b288-199e0a08bbef",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "4b10079c-763d-40a9-b288-199e0a08bbef@f9941",
38 | "displayName": "oops-net",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 400,
50 | "height": 300,
51 | "rawWidth": 400,
52 | "rawHeight": 300,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -200,
65 | -150,
66 | 0,
67 | 200,
68 | -150,
69 | 0,
70 | -200,
71 | 150,
72 | 0,
73 | 200,
74 | 150,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 300,
88 | 400,
89 | 300,
90 | 0,
91 | 0,
92 | 400,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -200,
107 | -150,
108 | 0
109 | ],
110 | "maxPos": [
111 | 200,
112 | 150,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "4b10079c-763d-40a9-b288-199e0a08bbef@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "4b10079c-763d-40a9-b288-199e0a08bbef@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-rpg-player2d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-rpg-player2d.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-rpg-player2d.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "0e3767b1-41b1-4dd6-ba8e-9afac0027ca5",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "0e3767b1-41b1-4dd6-ba8e-9afac0027ca5@6c48a",
14 | "displayName": "oops-rpg-player2d",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "0e3767b1-41b1-4dd6-ba8e-9afac0027ca5",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "0e3767b1-41b1-4dd6-ba8e-9afac0027ca5@f9941",
38 | "displayName": "oops-rpg-player2d",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 600,
50 | "height": 450,
51 | "rawWidth": 600,
52 | "rawHeight": 450,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -300,
65 | -225,
66 | 0,
67 | 300,
68 | -225,
69 | 0,
70 | -300,
71 | 225,
72 | 0,
73 | 300,
74 | 225,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 450,
88 | 600,
89 | 450,
90 | 0,
91 | 0,
92 | 600,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -300,
107 | -225,
108 | 0
109 | ],
110 | "maxPos": [
111 | 300,
112 | 225,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "0e3767b1-41b1-4dd6-ba8e-9afac0027ca5@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "0e3767b1-41b1-4dd6-ba8e-9afac0027ca5@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-rpg-player3d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-rpg-player3d.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-rpg-player3d.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "d034d979-447a-4772-9c6f-670cf9ad8e8d",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "d034d979-447a-4772-9c6f-670cf9ad8e8d@6c48a",
14 | "displayName": "oops-rpg-player3d",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "d034d979-447a-4772-9c6f-670cf9ad8e8d",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "d034d979-447a-4772-9c6f-670cf9ad8e8d@f9941",
38 | "displayName": "oops-rpg-player3d",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 400,
50 | "height": 300,
51 | "rawWidth": 400,
52 | "rawHeight": 300,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -200,
65 | -150,
66 | 0,
67 | 200,
68 | -150,
69 | 0,
70 | -200,
71 | 150,
72 | 0,
73 | 200,
74 | 150,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 300,
88 | 400,
89 | 300,
90 | 0,
91 | 0,
92 | 400,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -200,
107 | -150,
108 | 0
109 | ],
110 | "maxPos": [
111 | 200,
112 | 150,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "d034d979-447a-4772-9c6f-670cf9ad8e8d@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "d034d979-447a-4772-9c6f-670cf9ad8e8d@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-tiledmap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-tiledmap.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-tiledmap.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "dda672ed-158b-414d-96e3-07e5cd5aca1e",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "dda672ed-158b-414d-96e3-07e5cd5aca1e@6c48a",
14 | "displayName": "oops-tiledmap",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "dda672ed-158b-414d-96e3-07e5cd5aca1e",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "dda672ed-158b-414d-96e3-07e5cd5aca1e@f9941",
38 | "displayName": "oops-tiledmap",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 400,
50 | "height": 300,
51 | "rawWidth": 400,
52 | "rawHeight": 300,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -200,
65 | -150,
66 | 0,
67 | 200,
68 | -150,
69 | 0,
70 | -200,
71 | 150,
72 | 0,
73 | 200,
74 | 150,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 300,
88 | 400,
89 | 300,
90 | 0,
91 | 0,
92 | 400,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -200,
107 | -150,
108 | 0
109 | ],
110 | "maxPos": [
111 | 200,
112 | 150,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "dda672ed-158b-414d-96e3-07e5cd5aca1e@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "dda672ed-158b-414d-96e3-07e5cd5aca1e@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-turn-battle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-turn-battle.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-turn-battle.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "85df24a3-5dd8-4e14-a427-060b2e841f53",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "85df24a3-5dd8-4e14-a427-060b2e841f53@6c48a",
14 | "displayName": "oops-turn-battle",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "85df24a3-5dd8-4e14-a427-060b2e841f53",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "85df24a3-5dd8-4e14-a427-060b2e841f53@f9941",
38 | "displayName": "oops-turn-battle",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 660,
50 | "height": 495,
51 | "rawWidth": 660,
52 | "rawHeight": 495,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -330,
65 | -247.5,
66 | 0,
67 | 330,
68 | -247.5,
69 | 0,
70 | -330,
71 | 247.5,
72 | 0,
73 | 330,
74 | 247.5,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 495,
88 | 660,
89 | 495,
90 | 0,
91 | 0,
92 | 660,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -330,
107 | -247.5,
108 | 0
109 | ],
110 | "maxPos": [
111 | 330,
112 | 247.5,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "85df24a3-5dd8-4e14-a427-060b2e841f53@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "85df24a3-5dd8-4e14-a427-060b2e841f53@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-tutorial.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-tutorial.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "3f3e5a01-8a46-4aec-affb-e23d403fc166",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "3f3e5a01-8a46-4aec-affb-e23d403fc166@6c48a",
14 | "displayName": "oops-tutorial",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "3f3e5a01-8a46-4aec-affb-e23d403fc166",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "3f3e5a01-8a46-4aec-affb-e23d403fc166@f9941",
38 | "displayName": "oops-tutorial",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 600,
50 | "height": 450,
51 | "rawWidth": 600,
52 | "rawHeight": 450,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -300,
65 | -225,
66 | 0,
67 | 300,
68 | -225,
69 | 0,
70 | -300,
71 | 225,
72 | 0,
73 | 300,
74 | 225,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 450,
88 | 600,
89 | 450,
90 | 0,
91 | 0,
92 | 600,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -300,
107 | -225,
108 | 0
109 | ],
110 | "maxPos": [
111 | 300,
112 | 225,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "3f3e5a01-8a46-4aec-affb-e23d403fc166@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "3f3e5a01-8a46-4aec-affb-e23d403fc166@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-war-chess.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/game/product/oops-war-chess.png
--------------------------------------------------------------------------------
/assets/resources/game/product/oops-war-chess.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "0caa8593-eab0-4c16-9262-edb4f671bada",
6 | "files": [
7 | ".json",
8 | ".png"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "0caa8593-eab0-4c16-9262-edb4f671bada@6c48a",
14 | "displayName": "oops-war-chess",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "0caa8593-eab0-4c16-9262-edb4f671bada",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "0caa8593-eab0-4c16-9262-edb4f671bada@f9941",
38 | "displayName": "oops-war-chess",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 400,
50 | "height": 300,
51 | "rawWidth": 400,
52 | "rawHeight": 300,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "pixelsToUnit": 100,
59 | "pivotX": 0.5,
60 | "pivotY": 0.5,
61 | "meshType": 0,
62 | "vertices": {
63 | "rawPosition": [
64 | -200,
65 | -150,
66 | 0,
67 | 200,
68 | -150,
69 | 0,
70 | -200,
71 | 150,
72 | 0,
73 | 200,
74 | 150,
75 | 0
76 | ],
77 | "indexes": [
78 | 0,
79 | 1,
80 | 2,
81 | 2,
82 | 1,
83 | 3
84 | ],
85 | "uv": [
86 | 0,
87 | 300,
88 | 400,
89 | 300,
90 | 0,
91 | 0,
92 | 400,
93 | 0
94 | ],
95 | "nuv": [
96 | 0,
97 | 0,
98 | 1,
99 | 0,
100 | 0,
101 | 1,
102 | 1,
103 | 1
104 | ],
105 | "minPos": [
106 | -200,
107 | -150,
108 | 0
109 | ],
110 | "maxPos": [
111 | 200,
112 | 150,
113 | 0
114 | ]
115 | },
116 | "isUuid": true,
117 | "imageUuidOrDatabaseUri": "0caa8593-eab0-4c16-9262-edb4f671bada@6c48a",
118 | "atlasUuid": ""
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "fixAlphaTransparencyArtifacts": false,
132 | "redirect": "0caa8593-eab0-4c16-9262-edb4f671bada@6c48a"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/gui.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "8082dcd2-510f-4867-b2f1-c377843e16b4",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/gui/prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "e05e3ca3-6657-4d57-8c14-544b16c49d9f",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/gui/prefab/demo.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "5b6511a4-181b-4c81-9f9c-51e4c21b4d64",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "demo"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/gui/prefab/role_info.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "5d143d96-858f-4478-8bb4-f8279e87b509",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "role_info"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/gui/prefab/role_info_base.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "3ca889da-d664-4591-a123-063073c6609b",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "role_info_base"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/language.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "212e9f36-3089-49a2-80d3-28e93d0d19f1",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/font.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "4e04435b-8879-4f78-9114-21d89189a7b9",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "92204c5e-0e0d-437c-9b83-4bc1d2994a5d",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/json/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "common_prompt_ok": "ok",
3 | "common_prompt_cancal": "cancal",
4 | "common_prompt_title_sys": "System Prompt",
5 | "common_prompt_content": "System Prompt Cpmtemt",
6 | "common_prompt": "common_prompt",
7 | "notify_show": "notify_show",
8 | "btn_rich_text": "RichText",
9 | "btn_demo_lang": "English",
10 | "btn_common_prompt": "Public Pop",
11 | "btn_notify_show": "Prompt",
12 | "netInstableOpen": "Waiting ",
13 | "btn_audio_open1": "Music",
14 | "btn_audio_open2": "Effect",
15 | "btn_long": "Long Press",
16 | "loading_load_json": "Load Json",
17 | "loading_load_game": "Load Content",
18 | "loading_load_player": "Get user information",
19 | "role_name": "Name",
20 | "role_lv": "Level",
21 | "role_hp": "HP",
22 | "role_power": "Power",
23 | "role_physical": "Physical",
24 | "role_agile": "Agile"
25 | }
--------------------------------------------------------------------------------
/assets/resources/language/json/en.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "2c0f4643-d84a-49b9-9069-8efe9434304c",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/language/json/zh.json:
--------------------------------------------------------------------------------
1 | {
2 | "common_prompt_ok": "确定",
3 | "common_prompt_cancal": "取消",
4 | "common_prompt_title_sys": "系统提示",
5 | "common_prompt_content": "系统提示内容",
6 | "common_prompt": "公共弹窗",
7 | "notify_show": "信息显示",
8 | "update_tips_force": "当前版本过旧,需要下载新的安装包才能进行游戏,是否更新?",
9 | "update_tips_load_config": "加载配置中",
10 | "update_tips_load_game": "加载游戏中",
11 | "update_tips_check_update": "检查更新中",
12 | "update_tips_new_version": "发现新版本资源",
13 | "update_tips_success": "更新完成,点击确定重启游戏",
14 | "update_tips_update": "更新中:",
15 | "update_tips_update_fail": "更新失败",
16 | "update_tips_update_fail_click_retry": "更新失败,点击重试",
17 | "update_tips_update_success": "更新成功",
18 | "btn_rich_text": "富文本",
19 | "btn_demo_lang": "中文",
20 | "btn_common_prompt": "公共弹窗",
21 | "btn_notify_show": "提示信息",
22 | "netInstableOpen": "等待动画",
23 | "btn_audio_open1": "音乐播放",
24 | "btn_audio_open2": "音效播放",
25 | "btn_long": "长按按钮",
26 | "loading_load_json": "加载游戏本地数据",
27 | "loading_load_game": "加载游戏内容",
28 | "loading_load_player": "获取用户信息",
29 | "role_name": "名字",
30 | "role_lv": "等级",
31 | "role_hp": "生命",
32 | "role_power": "力量",
33 | "role_physical": "体质",
34 | "role_agile": "敏捷"
35 | }
--------------------------------------------------------------------------------
/assets/resources/language/json/zh.json.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "2.0.1",
3 | "importer": "json",
4 | "imported": true,
5 | "uuid": "f39d9bde-aff1-4255-846f-cbc4169d5d45",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {}
11 | }
12 |
--------------------------------------------------------------------------------
/assets/resources/language/spine.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "d4b2745d-3af5-4ffa-8b11-b0ac6a927551",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/spine/en.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "e8088a3d-b4df-4b8a-9f19-0d827bfdc88c",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/spine/zh.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "f5d2cf6b-9a62-473b-9284-cb90c020409e",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/texture.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "b67a859f-640d-4a5a-825e-51971fed24a5",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/texture/en.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "ec976edd-f0a0-4f29-a3f9-c803b92ef9be",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/texture/en/image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/language/texture/en/image.jpg
--------------------------------------------------------------------------------
/assets/resources/language/texture/en/image.jpg.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "3d5b607a-face-426b-8200-acf8384108db",
6 | "files": [
7 | ".jpg",
8 | ".json"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "3d5b607a-face-426b-8200-acf8384108db@6c48a",
14 | "displayName": "image",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "3d5b607a-face-426b-8200-acf8384108db",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "3d5b607a-face-426b-8200-acf8384108db@f9941",
38 | "displayName": "image",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 110,
50 | "height": 50,
51 | "rawWidth": 110,
52 | "rawHeight": 50,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "isUuid": true,
59 | "imageUuidOrDatabaseUri": "3d5b607a-face-426b-8200-acf8384108db@6c48a",
60 | "atlasUuid": "",
61 | "pixelsToUnit": 100,
62 | "pivotX": 0.5,
63 | "pivotY": 0.5,
64 | "meshType": 0,
65 | "vertices": {
66 | "rawPosition": [
67 | -55,
68 | -25,
69 | 0,
70 | 55,
71 | -25,
72 | 0,
73 | -55,
74 | 25,
75 | 0,
76 | 55,
77 | 25,
78 | 0
79 | ],
80 | "indexes": [
81 | 0,
82 | 1,
83 | 2,
84 | 2,
85 | 1,
86 | 3
87 | ],
88 | "uv": [
89 | 0,
90 | 50,
91 | 110,
92 | 50,
93 | 0,
94 | 0,
95 | 110,
96 | 0
97 | ],
98 | "nuv": [
99 | 0,
100 | 0,
101 | 1,
102 | 0,
103 | 0,
104 | 1,
105 | 1,
106 | 1
107 | ],
108 | "minPos": [
109 | -55,
110 | -25,
111 | 0
112 | ],
113 | "maxPos": [
114 | 55,
115 | 25,
116 | 0
117 | ]
118 | }
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "redirect": "3d5b607a-face-426b-8200-acf8384108db@6c48a",
132 | "fixAlphaTransparencyArtifacts": false
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/language/texture/en/loading.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "e79d002c-c98c-4322-a4dd-6245ee40a7cc",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/texture/zh.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "c03f86e4-9b94-4703-a944-93c83c0c07fd",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/language/texture/zh/image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/language/texture/zh/image.jpg
--------------------------------------------------------------------------------
/assets/resources/language/texture/zh/image.jpg.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.27",
3 | "importer": "image",
4 | "imported": true,
5 | "uuid": "a65eaaec-d315-4134-a79e-23bb817d1939",
6 | "files": [
7 | ".jpg",
8 | ".json"
9 | ],
10 | "subMetas": {
11 | "6c48a": {
12 | "importer": "texture",
13 | "uuid": "a65eaaec-d315-4134-a79e-23bb817d1939@6c48a",
14 | "displayName": "image",
15 | "id": "6c48a",
16 | "name": "texture",
17 | "userData": {
18 | "wrapModeS": "clamp-to-edge",
19 | "wrapModeT": "clamp-to-edge",
20 | "minfilter": "linear",
21 | "magfilter": "linear",
22 | "mipfilter": "none",
23 | "anisotropy": 0,
24 | "isUuid": true,
25 | "imageUuidOrDatabaseUri": "a65eaaec-d315-4134-a79e-23bb817d1939",
26 | "visible": false
27 | },
28 | "ver": "1.0.22",
29 | "imported": true,
30 | "files": [
31 | ".json"
32 | ],
33 | "subMetas": {}
34 | },
35 | "f9941": {
36 | "importer": "sprite-frame",
37 | "uuid": "a65eaaec-d315-4134-a79e-23bb817d1939@f9941",
38 | "displayName": "image",
39 | "id": "f9941",
40 | "name": "spriteFrame",
41 | "userData": {
42 | "trimType": "auto",
43 | "trimThreshold": 1,
44 | "rotated": false,
45 | "offsetX": 0,
46 | "offsetY": 0,
47 | "trimX": 0,
48 | "trimY": 0,
49 | "width": 110,
50 | "height": 50,
51 | "rawWidth": 110,
52 | "rawHeight": 50,
53 | "borderTop": 0,
54 | "borderBottom": 0,
55 | "borderLeft": 0,
56 | "borderRight": 0,
57 | "packable": true,
58 | "isUuid": true,
59 | "imageUuidOrDatabaseUri": "a65eaaec-d315-4134-a79e-23bb817d1939@6c48a",
60 | "atlasUuid": "",
61 | "pixelsToUnit": 100,
62 | "pivotX": 0.5,
63 | "pivotY": 0.5,
64 | "meshType": 0,
65 | "vertices": {
66 | "rawPosition": [
67 | -55,
68 | -25,
69 | 0,
70 | 55,
71 | -25,
72 | 0,
73 | -55,
74 | 25,
75 | 0,
76 | 55,
77 | 25,
78 | 0
79 | ],
80 | "indexes": [
81 | 0,
82 | 1,
83 | 2,
84 | 2,
85 | 1,
86 | 3
87 | ],
88 | "uv": [
89 | 0,
90 | 50,
91 | 110,
92 | 50,
93 | 0,
94 | 0,
95 | 110,
96 | 0
97 | ],
98 | "nuv": [
99 | 0,
100 | 0,
101 | 1,
102 | 0,
103 | 0,
104 | 1,
105 | 1,
106 | 1
107 | ],
108 | "minPos": [
109 | -55,
110 | -25,
111 | 0
112 | ],
113 | "maxPos": [
114 | 55,
115 | 25,
116 | 0
117 | ]
118 | }
119 | },
120 | "ver": "1.0.12",
121 | "imported": true,
122 | "files": [
123 | ".json"
124 | ],
125 | "subMetas": {}
126 | }
127 | },
128 | "userData": {
129 | "hasAlpha": true,
130 | "type": "sprite-frame",
131 | "redirect": "a65eaaec-d315-4134-a79e-23bb817d1939@6c48a",
132 | "fixAlphaTransparencyArtifacts": false
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/assets/resources/language/texture/zh/loading.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "cd00637d-4593-42b4-be01-711e6920e88b",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/loading.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "c2392cff-8a0b-4baa-95de-e3bfe2999f3c",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {
10 | "wechatgame": "zip"
11 | },
12 | "isRemoteBundle": {
13 | "wechatgame": true,
14 | "web-mobile": true,
15 | "web-desktop": true
16 | },
17 | "isBundle": false
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/assets/resources/loading/loading.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "989ba6a5-5936-4360-802e-82a5a22158da",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/loading/loading/texture.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "9df30361-6dbb-444f-8809-df0b7fd3f29e",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/loading/loading/texture/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/loading/loading/texture/bg.png
--------------------------------------------------------------------------------
/assets/resources/loading/loading/texture/icon_loading_bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/loading/loading/texture/icon_loading_bar.png
--------------------------------------------------------------------------------
/assets/resources/loading/loading/texture/panel_loading_bottom_frame.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/assets/resources/loading/loading/texture/panel_loading_bottom_frame.png
--------------------------------------------------------------------------------
/assets/resources/loading/prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "9e4a59af-22c3-4c0b-b864-98193db88d5f",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/loading/prefab/loading.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.50",
3 | "importer": "prefab",
4 | "imported": true,
5 | "uuid": "b3142304-c27f-4492-b94f-551d154a2bf4",
6 | "files": [
7 | ".json"
8 | ],
9 | "subMetas": {},
10 | "userData": {
11 | "syncNodeName": "loading"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/resources/project.manifest.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "importer": "*",
4 | "imported": true,
5 | "uuid": "acbe03ba-4e92-43cf-a521-c5337c12e38b",
6 | "files": [
7 | ".json",
8 | ".manifest"
9 | ],
10 | "subMetas": {},
11 | "userData": {}
12 | }
13 |
--------------------------------------------------------------------------------
/assets/resources/version.manifest:
--------------------------------------------------------------------------------
1 | {"packageUrl":"http://127.0.0.1/android/1.0.0.1","version":"1.0.0.1","remoteManifestUrl":"http://127.0.0.1/android/project.manifest","remoteVersionUrl":"http://127.0.0.1/android/version.manifest"}
--------------------------------------------------------------------------------
/assets/resources/version.manifest.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "importer": "*",
4 | "imported": true,
5 | "uuid": "4eada1a4-cb98-4e24-ba67-fa8126531d52",
6 | "files": [
7 | ".json",
8 | ".manifest"
9 | ],
10 | "subMetas": {},
11 | "userData": {}
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "c71845dc-9d65-4d6d-8aca-dcb8079e4aae",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/Main.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-07-03 16:13:17
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2023-01-19 15:28:28
6 | */
7 | import { DynamicAtlasManager, _decorator, macro, profiler } from 'cc';
8 | import { DEBUG, JSB } from 'cc/env';
9 | import { oops } from '../../extensions/oops-plugin-framework/assets/core/Oops';
10 | import { Root } from '../../extensions/oops-plugin-framework/assets/core/Root';
11 | import { ecs } from '../../extensions/oops-plugin-framework/assets/libs/ecs/ECS';
12 | import { UIConfigData } from './game/common/config/GameUIConfig';
13 | import { smc } from './game/common/ecs/SingletonModuleComp';
14 | import { EcsPositionSystem } from './game/common/ecs/position/EcsPositionSystem';
15 | import { Initialize } from './game/initialize/Initialize';
16 |
17 | const { ccclass, property } = _decorator;
18 |
19 | macro.CLEANUP_IMAGE_CACHE = false;
20 | DynamicAtlasManager.instance.enabled = true;
21 | DynamicAtlasManager.instance.maxFrameSize = 512;
22 |
23 | @ccclass('Main')
24 | export class Main extends Root {
25 | start() {
26 | if (DEBUG) profiler.showStats();
27 | }
28 |
29 | protected run() {
30 | smc.initialize = ecs.getEntity(Initialize);
31 | if (JSB) {
32 | oops.gui.toast("热更新后新程序的提示");
33 | }
34 | }
35 |
36 | protected initGui() {
37 | oops.gui.init(UIConfigData);
38 | }
39 |
40 | protected async initEcsSystem() {
41 | oops.ecs.add(new EcsPositionSystem())
42 | // oops.ecs.add(new EcsAccountSystem());
43 | // oops.ecs.add(new EcsRoleSystem());
44 | // oops.ecs.add(new EcsInitializeSystem());
45 | }
46 | }
--------------------------------------------------------------------------------
/assets/script/Main.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "0eec0b38-aab6-45ee-89cf-95806b0fecbe",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "moduleId": "project:///assets/script/Main.js",
10 | "importerSettings": 4,
11 | "simulateGlobals": []
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/script/game.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "b8688d91-9274-40b5-a605-23ee4e5a4eec",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/account.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "a4fb13ea-4a93-40fd-adbd-bb220cfe8336",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/account/Account.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-11 17:45:23
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-08-01 13:49:37
6 | */
7 |
8 | import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
9 | import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
10 | import { GameEvent } from "../common/config/GameEvent";
11 | import { AccountNetDataComp, AccountNetDataSystem } from "./bll/AccountNetData";
12 | import { AccountModelComp } from "./model/AccountModelComp";
13 |
14 | /**
15 | * 账号模块
16 | * 1、连接游戏服务器
17 | * 2、登录玩家帐号,获取玩家信息
18 | * 3、断线重连接
19 | */
20 | @ecs.register('Account')
21 | export class Account extends ecs.Entity {
22 | AccountModel!: AccountModelComp;
23 | AccountNetData!: AccountNetDataComp;
24 |
25 | protected init() {
26 | this.addComponents(AccountModelComp);
27 | this.addEvent();
28 | }
29 |
30 | destroy(): void {
31 | this.removeEvent();
32 | super.destroy();
33 | }
34 |
35 | /** 添加全局消息事件 */
36 | private addEvent() {
37 | oops.message.on(GameEvent.GameServerConnected, this.onHandler, this);
38 | }
39 |
40 | /** 移除全局消息事件 */
41 | private removeEvent() {
42 | oops.message.off(GameEvent.GameServerConnected, this.onHandler, this);
43 | }
44 |
45 | private onHandler(event: string, args: any) {
46 | switch (event) {
47 | case GameEvent.GameServerConnected:
48 | this.getPlayer();
49 | break;
50 | }
51 | }
52 |
53 | /** 连接游戏服务器 */
54 | connect() {
55 | // netChannel.gameCreate();
56 | // netChannel.gameConnect();
57 |
58 | // 无网状态下测试代码,有网络时会通过触发网络连接成功事件对接后续流程
59 | oops.message.dispatchEvent(GameEvent.GameServerConnected)
60 | }
61 |
62 | /** 获取玩家信息 */
63 | getPlayer() {
64 | this.add(AccountNetDataComp);
65 | }
66 | }
67 |
68 | // export class EcsAccountSystem extends ecs.System {
69 | // constructor() {
70 | // super();
71 |
72 | // this.add(new AccountNetDataSystem());
73 | // }
74 | // }
75 |
--------------------------------------------------------------------------------
/assets/script/game/account/Account.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "33c06a92-3daf-4c45-b4d4-39fd6efbb491",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/account/AccountModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "8f35d0a4-3ee2-4a90-a175-f49e9515e7f1",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/account/AccountNetDataComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "cd124d00-d854-4283-baf8-9c9d463ef23b",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/account/bll.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "829c1899-3552-4c56-8e03-5d056c1001f3",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/account/bll/AccountNetData.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-23 15:51:15
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-07-25 17:03:54
6 | */
7 |
8 | import { v3 } from "cc";
9 | import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
10 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
11 | import { GameEvent } from "../../common/config/GameEvent";
12 | import { Role } from "../../role/Role";
13 | import { Account } from "../Account";
14 | import { AccountModelComp } from "../model/AccountModelComp";
15 |
16 | /** 请求玩家游戏数据 */
17 | @ecs.register('AccountNetData')
18 | export class AccountNetDataComp extends ecs.Comp {
19 | reset() { }
20 | }
21 |
22 | /** 请求玩家游戏数据 */
23 | @ecs.register('Account')
24 | export class AccountNetDataSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
25 | filter(): ecs.IMatcher {
26 | return ecs.allOf(AccountNetDataComp, AccountModelComp);
27 | }
28 |
29 | entityEnter(e: Account): void {
30 | let onComplete = {
31 | target: this,
32 | callback: (data: any) => {
33 | // 设置本地存储的用户标识(用于下次登录不输入帐号)
34 | this.setLocalStorage(data.id);
35 |
36 | // 创建玩家角色对象
37 | this.createRole(e, data);
38 |
39 | // 玩家登录成功事件
40 | oops.message.dispatchEvent(GameEvent.LoginSuccess);
41 | }
42 | }
43 |
44 | // 离线测试代码开始
45 | var data = {
46 | id: 1,
47 | name: "Oops",
48 | power: 10,
49 | agile: 10,
50 | physical: 10,
51 | lv: 1,
52 | jobId: 1
53 | }
54 | onComplete.callback(data);
55 | // 离线测试代码结束
56 |
57 | e.remove(AccountNetDataComp);
58 | }
59 |
60 | /** 创建角色对象(自定义逻辑) */
61 | private createRole(e: Account, data: any) {
62 | var role = ecs.getEntity(Role);
63 |
64 | // 角色数据
65 | role.RoleModel.id = data.id;
66 | role.RoleModel.name = data.name;
67 |
68 | // 角色初始战斗属性
69 | role.RoleModelBase.power = data.power;
70 | role.RoleModelBase.agile = data.agile;
71 | role.RoleModelBase.physical = data.physical;
72 |
73 | // 角色等级数据
74 | role.upgrade(data.lv);
75 |
76 | // 角色职业数据
77 | role.RoleModelJob.id = data.jobId;
78 |
79 | // 角色基础属性绑定到界面上显示
80 | role.RoleModel.vmAdd();
81 | // 角色等级属性绑定到界面上显示
82 | role.RoleModelLevel.vmAdd();
83 | // 角色初始基础属性绑定到界面上显示
84 | role.RoleModelBase.vmAdd();
85 |
86 | // 角色动画显示对象
87 | role.load(oops.gui.game, v3(0, -300, 0));
88 |
89 | e.AccountModel.role = role;
90 | }
91 |
92 | /** 设置本地存储的用户标识 */
93 | private setLocalStorage(uid: string) {
94 | oops.storage.setUser(uid);
95 | oops.storage.set("account", uid);
96 | }
97 | }
--------------------------------------------------------------------------------
/assets/script/game/account/bll/AccountNetData.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "699d5d4d-783e-4d45-bebd-93cd46f999f1",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/account/model.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "35161e65-2087-41b4-b51d-1130a52e6207",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/account/model/AccountModelComp.ts:
--------------------------------------------------------------------------------
1 |
2 |
3 | /*
4 | * @Author: dgflash
5 | * @Date: 2021-11-12 10:02:31
6 | * @LastEditors: dgflash
7 | * @LastEditTime: 2022-07-25 17:03:45
8 | */
9 |
10 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
11 | import { Role } from "../../role/Role";
12 |
13 | /**
14 | * 游戏帐号数据
15 | */
16 | @ecs.register('AccountModel')
17 | export class AccountModelComp extends ecs.Comp {
18 | /** 资源列表 */
19 | currency: any = {};
20 | /** 角色对象 */
21 | role: Role = null!;
22 |
23 | reset() {
24 |
25 | }
26 | }
--------------------------------------------------------------------------------
/assets/script/game/account/model/AccountModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "48e31ef6-0516-40f9-92de-856053566b00",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/account/view.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "2c878291-495b-4425-8c81-d3613cfd5ccc",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/backup.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "0.0.1",
3 | "importer": "*",
4 | "imported": true,
5 | "uuid": "058e3947-1549-4999-be3f-5417729d9c1c",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "357b1816-e65d-47e7-938e-a74526a54b65",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/common/GameUIBase.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "88cd6342-234d-42f8-a10a-4b5b1d33a745",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/config.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "7775e602-1231-4777-a927-a5cbb41c8518",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/common/config/GameEvent.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-23 15:28:39
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-01-26 16:42:00
6 | */
7 |
8 | /** 游戏事件 */
9 | export enum GameEvent {
10 | /** 游戏服务器连接成功 */
11 | GameServerConnected = "GameServerConnected",
12 | /** 登陆成功 */
13 | LoginSuccess = "LoginSuccess"
14 | }
--------------------------------------------------------------------------------
/assets/script/game/common/config/GameEvent.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "28ac0ad6-53bf-471a-9256-ae7c8ad351a7",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/config/GameResPath.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2022-08-05 17:05:23
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-08-05 17:05:52
6 | */
7 |
8 | /** 游戏资源路径 */
9 | export class GameResPath {
10 | /** 游戏配置路径 */
11 | static getConfigPath(relative_path: string) {
12 | return "config/game/" + relative_path;
13 | }
14 |
15 | /** 角色资源路径 */
16 | static getRolePath(name: string) {
17 | return `content/role/${name}`;
18 | }
19 | }
--------------------------------------------------------------------------------
/assets/script/game/common/config/GameResPath.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "da7c0e11-124d-41dc-8484-379e09c981b5",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/config/GameUIConfig.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Date: 2021-08-12 09:33:37
3 | * @LastEditors: dgflash
4 | * @LastEditTime: 2022-11-11 17:41:53
5 | */
6 |
7 | import { LayerType } from "db://oops-framework/core/gui/layer/LayerEnum";
8 | import { UIConfig } from "db://oops-framework/core/gui/layer/UIConfig";
9 |
10 |
11 | /** 界面唯一标识(方便服务器通过编号数据触发界面打开) */
12 | export enum UIID {
13 | /** 资源加载界面 */
14 | Loading = 1,
15 | /** 提示弹出窗口 */
16 | Alert,
17 | /** 确认弹出窗口 */
18 | Confirm,
19 | /** DEMO */
20 | Demo,
21 | /** 角色信息 */
22 | Demo_Role_Info,
23 | }
24 |
25 | /** 打开界面方式的配置数据 */
26 | export var UIConfigData: { [key: number]: UIConfig } = {
27 | [UIID.Loading]: { layer: LayerType.UI, prefab: "loading/prefab/loading", bundle: "resources" },
28 | [UIID.Alert]: { layer: LayerType.Dialog, prefab: "common/prefab/alert", mask: true },
29 | [UIID.Confirm]: { layer: LayerType.Dialog, prefab: "common/prefab/confirm", mask: true },
30 | [UIID.Demo]: { layer: LayerType.UI, prefab: "gui/prefab/demo" },
31 | [UIID.Demo_Role_Info]: { layer: LayerType.UI, prefab: "gui/prefab/role_info" }
32 | }
--------------------------------------------------------------------------------
/assets/script/game/common/config/GameUIConfig.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "ffa5cdbb-3d85-42be-80bb-63b60eca5ffc",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/config/QueryConfig.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "1f8651a4-0870-4475-ae85-d7e8b93c53b4",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "moduleId": "project:///assets/script/game/config/QueryConfig.js",
10 | "importerSettings": 4,
11 | "simulateGlobals": []
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/script/game/common/config/UIConfig.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "084510dd-1c52-44e1-9bce-00633e73f0fc",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/ecs.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "63977702-a1b8-44dd-954a-9903b5ce3872",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/common/ecs/SingletonModuleComp.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-18 14:20:46
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-07-25 17:06:15
6 | */
7 |
8 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
9 | import { Account } from "../../account/Account";
10 | import { Initialize } from "../../initialize/Initialize";
11 |
12 | /** 游戏模块 */
13 | @ecs.register('SingletonModule')
14 | export class SingletonModuleComp extends ecs.Comp {
15 | /** 游戏初始化模块 */
16 | initialize: Initialize = null!;
17 | /** 游戏账号模块 */
18 | get account(): Account {
19 | return this.initialize.account;
20 | }
21 |
22 | reset() { }
23 | }
24 |
25 | export var smc: SingletonModuleComp = ecs.getSingleton(SingletonModuleComp);
--------------------------------------------------------------------------------
/assets/script/game/common/ecs/SingletonModuleComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "c1147d9a-3dcd-4fd0-ad87-f4d964ee62a8",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/ecs/position.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "d2d775f5-1dc0-455e-89d7-4a17f43170e0",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/common/ecs/position/EcsPositionSystem.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-08-11 16:41:12
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-07-25 17:05:02
6 | */
7 | import { ecs } from "../../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
8 | import { MoveToSystem } from "./MoveTo";
9 |
10 | export class EcsPositionSystem extends ecs.System {
11 | constructor() {
12 | super();
13 | this.add(new MoveToSystem());
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/assets/script/game/common/ecs/position/EcsPositionSystem.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "b44c446b-ce5f-4079-ac42-269837dbf580",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/ecs/position/MoveTo.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "eb55eb50-dace-4e75-8965-3475c0b11835",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/prompt.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "74d4a589-399e-401e-96c4-9abd888d7266",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/common/prompt/TipsManager.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "9748eae2-11c2-4ea7-a392-76767faa1b39",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/table.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "cec5d176-d9f1-4cf6-95bc-e862683a7c2b",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/common/table/TableLanguage.ts:
--------------------------------------------------------------------------------
1 |
2 | import { JsonUtil } from "../../../../../extensions/oops-plugin-framework/assets/core/utils/JsonUtil";
3 |
4 | export class TableLanguage {
5 | static TableName: string = "Language";
6 |
7 | private data: any;
8 |
9 | init(id: number) {
10 | var table = JsonUtil.get(TableLanguage.TableName);
11 | this.data = table[id];
12 | this.id = id;
13 | }
14 |
15 | /** 编号【KEY】 */
16 | id: number = 0;
17 |
18 | /** 简体中文 */
19 | get zh(): string {
20 | return this.data.zh;
21 | }
22 | /** 英文 */
23 | get en(): string {
24 | return this.data.en;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/assets/script/game/common/table/TableLanguage.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "290f6330-3789-4738-a324-70369ca98be5",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/table/TablePromptWindow.ts:
--------------------------------------------------------------------------------
1 |
2 | import { JsonUtil } from "../../../../../extensions/oops-plugin-framework/assets/core/utils/JsonUtil";
3 |
4 | export class TablePromptWindow {
5 | static TableName: string = "PromptWindow";
6 |
7 | private data: any;
8 |
9 | init(id: number, id1: number, id2: number) {
10 | var table = JsonUtil.get(TablePromptWindow.TableName);
11 | this.data = table[id][id1][id2];
12 | this.id = id;
this.id1 = id1;
this.id2 = id2;
13 | }
14 |
15 | /** 编号【KEY】 */
16 | id: number = 0;
/** 双主键【KEY】 */
17 | id1: number = 0;
/** 双主键【KEY】 */
18 | id2: number = 0;
19 |
20 | /** 标题 */
21 | get title(): string {
22 | return this.data.title;
23 | }
24 | /** 描述 */
25 | get describe(): string {
26 | return this.data.describe;
27 | }
28 | /** 描述 */
29 | get array(): any {
30 | return this.data.array;
31 | }
32 | /** 生命 */
33 | get hp(): number {
34 | return this.data.hp;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/assets/script/game/common/table/TablePromptWindow.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "0e0091bc-db56-4a18-8669-334ddff61370",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/table/TableRoleJob.ts:
--------------------------------------------------------------------------------
1 |
2 | import { JsonUtil } from "../../../../../extensions/oops-plugin-framework/assets/core/utils/JsonUtil";
3 |
4 | export class TableRoleJob {
5 | static TableName: string = "RoleJob";
6 |
7 | private data: any;
8 |
9 | init(id: number) {
10 | var table = JsonUtil.get(TableRoleJob.TableName);
11 | this.data = table[id];
12 | this.id = id;
13 | }
14 |
15 | /** 编号【KEY】 */
16 | id: number = 0;
17 |
18 | /** 职业名 */
19 | get armsName(): string {
20 | return this.data.armsName;
21 | }
22 | /** 武器类型 */
23 | get weaponType(): any {
24 | return this.data.weaponType;
25 | }
26 | /** 力量 */
27 | get power(): number {
28 | return this.data.power;
29 | }
30 | /** 敏捷 */
31 | get agile(): number {
32 | return this.data.agile;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/assets/script/game/common/table/TableRoleJob.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "45753233-f907-41fd-952a-f40d7e31396b",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/common/table/TableRoleLevelUp.ts:
--------------------------------------------------------------------------------
1 |
2 | import { JsonUtil } from "../../../../../extensions/oops-plugin-framework/assets/core/utils/JsonUtil";
3 |
4 | export class TableRoleLevelUp {
5 | static TableName: string = "RoleLevelUp";
6 |
7 | private data: any;
8 |
9 | init(id: number) {
10 | var table = JsonUtil.get(TableRoleLevelUp.TableName);
11 | this.data = table[id];
12 | this.id = id;
13 | }
14 |
15 | /** 编号【KEY】 */
16 | id: number = 0;
17 |
18 | /** 升级所需经验 */
19 | get needexp(): number {
20 | return this.data.needexp;
21 | }
22 | /** 升级增加生命 */
23 | get hp(): number {
24 | return this.data.hp;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/assets/script/game/common/table/TableRoleLevelUp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "f71b8a82-d129-4e56-80ab-16c0ba1ca8a8",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/demo.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "877de6e7-ad53-4ed6-9410-6948b470660c",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/demo/Demo.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "46770dbb-ecc5-4250-99ad-b71fcaaadfda",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "moduleId": "project:///assets/script/game/gui/Demo.js",
10 | "importerSettings": 4,
11 | "simulateGlobals": []
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/assets/script/game/demo/GameEvent.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "31e1bb3d-ea38-4ab0-a574-2dcbab7b310a",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/initialize.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "b005e8c9-418f-4529-8b5c-862aeb5977b1",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/initialize/Initialize.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-11 17:45:23
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-08-01 13:49:35
6 | */
7 | import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
8 | import { Account } from "../account/Account";
9 | import { InitResComp, InitResSystem } from "./bll/InitRes";
10 |
11 | /**
12 | * 游戏进入初始化模块
13 | * 1、热更新
14 | * 2、加载默认资源
15 | */
16 | @ecs.register('Initialize')
17 | export class Initialize extends ecs.Entity {
18 | /** 帐号管理 */
19 | account: Account = null!;
20 |
21 | protected init() {
22 | // 帐号模块为初始化模块的子实体对象
23 | this.account = ecs.getEntity(Account);
24 | this.addChild(this.account);
25 |
26 | // 初始化游戏公共资源
27 | this.add(InitResComp);
28 | }
29 | }
30 |
31 | // export class EcsInitializeSystem extends ecs.System {
32 | // constructor() {
33 | // super();
34 |
35 | // this.add(new InitResSystem());
36 | // }
37 | // }
--------------------------------------------------------------------------------
/assets/script/game/initialize/Initialize.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "ffbce42c-e99f-48a0-8e73-ea6b756af330",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/initialize/LoadingViewComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "e316d2a4-1d8a-4f55-994c-f00db0076e7f",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/initialize/bll.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "de5401a8-45c8-4249-aa4c-933102551227",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/initialize/bll/InitRes.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2022-07-22 17:06:22
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-09-22 14:41:58
6 | */
7 |
8 | import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
9 | import { AsyncQueue, NextFunction } from "../../../../../extensions/oops-plugin-framework/assets/libs/collection/AsyncQueue";
10 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
11 | import { UIID } from "../../common/config/GameUIConfig";
12 | import { Initialize } from "../Initialize";
13 | import { LoadingViewComp } from "../view/LoadingViewComp";
14 |
15 | /** 初始化游戏公共资源 */
16 | @ecs.register('InitRes')
17 | export class InitResComp extends ecs.Comp {
18 | reset() { }
19 | }
20 |
21 | @ecs.register('Initialize')
22 | export class InitResSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
23 | filter(): ecs.IMatcher {
24 | return ecs.allOf(InitResComp);
25 | }
26 |
27 | entityEnter(e: Initialize): void {
28 | var queue: AsyncQueue = new AsyncQueue();
29 |
30 | // 加载自定义资源
31 | this.loadCustom(queue);
32 | // 加载多语言包
33 | this.loadLanguage(queue);
34 | // 加载公共资源
35 | this.loadCommon(queue);
36 | // 加载游戏内容加载进度提示界面
37 | this.onComplete(queue, e);
38 |
39 | queue.play();
40 | }
41 |
42 | /** 加载自定义内容(可选) */
43 | private loadCustom(queue: AsyncQueue) {
44 | queue.push(async (next: NextFunction, params: any, args: any) => {
45 | // 加载多语言对应字体
46 | oops.res.load("language/font/" + oops.language.current, next);
47 | });
48 | }
49 |
50 | /** 加载化语言包(可选) */
51 | private loadLanguage(queue: AsyncQueue) {
52 | queue.push((next: NextFunction, params: any, args: any) => {
53 | // 设置默认语言
54 | let lan = oops.storage.get("language");
55 | if (lan == null || lan == "") {
56 | lan = "zh";
57 | oops.storage.set("language", lan);
58 | }
59 |
60 | // 加载语言包资源
61 | oops.language.setLanguage(lan, next);
62 | });
63 | }
64 |
65 | /** 加载公共资源(必备) */
66 | private loadCommon(queue: AsyncQueue) {
67 | queue.push((next: NextFunction, params: any, args: any) => {
68 | oops.res.loadDir("common", next);
69 | });
70 | }
71 |
72 | /** 加载完成进入游戏内容加载界面 */
73 | private onComplete(queue: AsyncQueue, e: Initialize) {
74 | queue.complete = async () => {
75 | var node = await oops.gui.openAsync(UIID.Loading);
76 | if (node) e.add(node.getComponent(LoadingViewComp) as ecs.Comp);
77 | e.remove(InitResComp);
78 | };
79 | }
80 | }
--------------------------------------------------------------------------------
/assets/script/game/initialize/bll/InitRes.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "2ee0cf3e-ed1f-4414-a41b-f8e3e7f66964",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/initialize/view.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "a36c4006-66a4-4a3e-9f87-e64b179de4e5",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/initialize/view/Hot.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "f63770a4-6dbf-4283-9476-ca015630e0af",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/initialize/view/HotUpdate.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "f64de890-2c08-4b87-91c6-a94a9a23da00",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/initialize/view/LoadingViewComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "92429ca4-4e7c-450a-b706-c96e7c2568e3",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "ffdd5a80-e057-4f91-92af-a86e1b26cbc6",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/role/Role.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "deb5a90b-5729-4a03-9f73-28ed96202f8a",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/RoleEvent.ts:
--------------------------------------------------------------------------------
1 | /** 角色模块全局事件 */
2 | export enum RoleEvent {
3 | /** 修改职业事件 */
4 | ChangeJob = "ChangeJob"
5 | }
--------------------------------------------------------------------------------
/assets/script/game/role/RoleEvent.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "a2e7abd7-21aa-4dfc-ab5c-6dd0dfba2a7c",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/bll.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "8164d96e-0467-4bd2-9123-8a490de8c68f",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/role/bll/RoleBattle.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "5130ca90-66bd-4c87-8db9-f9f847396454",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/bll/RoleChangeJob.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2022-01-25 17:49:26
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-07-21 16:49:00
6 | */
7 |
8 | import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
9 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
10 | import { RoleModelJobComp } from "../model/RoleModelJobComp";
11 | import { Role } from "../Role";
12 | import { RoleEvent } from "../RoleEvent";
13 |
14 | /**
15 | * 角色转职
16 | *
17 | * 实现功能
18 | * 1、修改角色职业子模块的职业数据
19 | * 2、自动通过战斗属性框架更新角色战斗属性多模块的叠加值
20 | * 3、切换角色动画的职业武器
21 | *
22 | * 技术分析
23 | * 1、使用ecs.Comp做为业务输入参数的接口,可理解为一个对象成员方法接收了方法参数,通过ecs框架的特点,ecs.System 系统会监控自己关注的数据组件变化后,做对应的业务处理
24 | * 2、在角色实体上添加职业切换组件时触发业务逻辑的处理,完成后从角色实体上移除业务组件完成业务的生命周期。
25 | */
26 | @ecs.register('RoleChangeJob')
27 | export class RoleChangeJobComp extends ecs.Comp {
28 | /** 职业编号 */
29 | jobId: number = -1;
30 |
31 | reset() {
32 | this.jobId = -1;
33 | }
34 | }
35 |
36 | @ecs.register('Role')
37 | export class RoleChangeJobSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
38 | filter(): ecs.IMatcher {
39 | return ecs.allOf(RoleChangeJobComp, RoleModelJobComp);
40 | }
41 |
42 | entityEnter(e: Role): void {
43 | // 数值更新
44 | e.RoleModelJob.id = e.RoleChangeJob.jobId;
45 |
46 | // 转职事件,通知视图层逻辑刷新界面效果,实现两层逻辑分离
47 | oops.message.dispatchEvent(RoleEvent.ChangeJob);
48 |
49 | e.remove(RoleChangeJobComp);
50 | }
51 | }
--------------------------------------------------------------------------------
/assets/script/game/role/bll/RoleChangeJob.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "7ab8a7b3-4c1d-4650-8134-cc549b1bd814",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/bll/RoleUpgrade.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2022-06-02 09:38:48
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 19:55:46
6 | */
7 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
8 | import { RoleAttributeType } from "../model/RoleEnum";
9 | import { RoleModelLevelComp } from "../model/RoleModelLevelComp";
10 | import { Role } from "../Role";
11 |
12 | /**
13 | * 角色升级
14 | */
15 | @ecs.register('RoleUpgrade')
16 | export class RoleUpgradeComp extends ecs.Comp {
17 | /** 当前等级 */
18 | lv: number = 0;
19 |
20 | reset() {
21 | this.lv = 0;
22 | }
23 | }
24 |
25 | @ecs.register('Role')
26 | export class RoleUpgradeSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
27 | filter(): ecs.IMatcher {
28 | return ecs.allOf(RoleUpgradeComp, RoleModelLevelComp);
29 | }
30 |
31 | entityEnter(e: Role): void {
32 | let rm = e.RoleModel;
33 | let rlm = e.RoleModelLevel;
34 | let ru = e.RoleUpgrade;
35 |
36 | if (ru.lv == 0)
37 | rlm.vm.lv++; // 提升一级
38 | else
39 | rlm.vm.lv = ru.lv; // 设置等级
40 |
41 | // 当前等级配置
42 | rlm.rtluCurrent.init(rlm.vm.lv);
43 | // 等级附加属性
44 | rm.attributes.get(RoleAttributeType.hp).level = rlm.rtluCurrent.hp;
45 |
46 | // 下个等级配置
47 | rlm.rtluNext.init(rlm.vm.lv + 1);
48 | rlm.vm.expNext = rlm.rtluNext.needexp;
49 |
50 | e.remove(RoleUpgradeComp);
51 | }
52 | }
--------------------------------------------------------------------------------
/assets/script/game/role/bll/RoleUpgrade.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "7750b9a2-9bdc-408e-a020-aef84fe6c85e",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/bll/action.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "52966ec2-355b-4c89-a608-5d5f34ba8ae9",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/role/bll/ai.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "7bde0e45-7d4e-4cf5-b0ce-f8b6a5ca4d12",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/role/bll/skill.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "20fb6abb-3b0e-4361-8200-941b98891456",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/role/model.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "3fba28ee-42f7-4be0-a42d-776301b37fbc",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleCharacteristicModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "2fc06e2a-6834-4ce6-9a7b-96eae66f0abe",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleDescentModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "d299c6b5-6424-4c27-ab35-013e8ad0c433",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleDrawSixModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "1ca33287-9c39-44a8-b8dd-c6e0c21dd8a7",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleEnum.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2022-01-26 14:14:34
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-01-27 15:49:36
6 | */
7 |
8 | /** 角色属性类型 */
9 | export enum RoleAttributeType {
10 | /** 力量 */
11 | power = "power",
12 | /** 体质 */
13 | physical = "physical",
14 | /** 敏捷 */
15 | agile = "agile",
16 | /** 生命最大值 */
17 | hp = "hp"
18 | }
19 |
20 | /** 角色动作名 */
21 | export enum RoleAnimatorType {
22 | /** 待机 */
23 | Idle = "Idle",
24 | /** 攻击 */
25 | Attack = "Attack",
26 | /** 受击 */
27 | Hurt = "Hurt",
28 | /** 死亡 */
29 | Dead = "Dead"
30 | }
31 |
32 | /** 武器名 */
33 | export var WeaponName: any = {
34 | 0: "Fist",
35 | 1: "Katana",
36 | 2: "CrossGun",
37 | 3: "LongGun",
38 | 4: "Razor",
39 | 5: "Arch",
40 | 6: "Crossbow",
41 | 7: "IronCannon",
42 | 8: "FireGun",
43 | 9: "Wakizashi",
44 | 10: "Kunai",
45 | 11: "Dagger",
46 | 12: "Kusarigama",
47 | 13: "DanceFan",
48 | 14: "Flag",
49 | 15: "MilitaryFan",
50 | 16: "Shield"
51 | }
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleEnum.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "a8fd6149-fa4b-4b2c-83c0-c08b3813b9f7",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleEquipModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "5c21f8a7-8fd1-4845-a777-a2e03256526b",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleFamilyModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "b53c6b75-188b-46ae-93a9-4c1ecd6009c8",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleModelBaseComp.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-18 15:56:01
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 19:54:43
6 | */
7 |
8 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
9 | import { VM } from "../../../../../extensions/oops-plugin-framework/assets/libs/model-view/ViewModel";
10 | import { RoleAttributeType } from "./RoleEnum";
11 | import { RoleModelComp } from "./RoleModelComp";
12 |
13 | /**
14 | * 角色基础属性数据
15 | *
16 | * 实现功能
17 | * 1、角色初始创建时有随机的基础战斗属性
18 | * 2、基础战斗属性会独立显示数值
19 | *
20 | * 技术分析
21 | * 1、RoleModelComp.attributes 中设计了可扩展的角色战斗属性对象,这里分出来一个基础属性对象,是为了生成 VM 组件需要的数据格式,辅助视图层的显示逻辑
22 | * 2、这样设计用意是不在 RoleModelComp 对象中插入一个针对基础属性的 VM 数据。这里表达在新增需求时,尽量通过增量开发,不影响原有功能。在项目代码越来越多时,不容易因忽略某个点导致出现新问题。
23 | */
24 | @ecs.register('RoleModelBase')
25 | export class RoleModelBaseComp extends ecs.Comp {
26 | /** 提供 VM 组件使用的数据 */
27 | private vm: any = {};
28 |
29 | /** 力量 */
30 | private _power: number = 0;
31 | public get power(): number {
32 | return this._power;
33 | }
34 | public set power(value: number) {
35 | this._power = value;
36 | this.ent.get(RoleModelComp).attributes.get(RoleAttributeType.power).base = value;
37 | this.vm[RoleAttributeType.power] = value;
38 | }
39 |
40 | /** 体质 */
41 | private _physical: number = 0;
42 | public get physical(): number {
43 | return this._physical;
44 | }
45 | public set physical(value: number) {
46 | this._physical = value;
47 | this.ent.get(RoleModelComp).attributes.get(RoleAttributeType.physical).base = value;
48 | this.vm[RoleAttributeType.physical] = value;
49 | }
50 |
51 | /** 敏捷 */
52 | private _agile: number = 0;
53 | public get agile(): number {
54 | return this._agile;
55 | }
56 | public set agile(value: number) {
57 | this._agile = value;
58 | this.ent.get(RoleModelComp).attributes.get(RoleAttributeType.agile).base = value;
59 | this.vm[RoleAttributeType.agile] = value;
60 | }
61 |
62 | vmAdd() {
63 | VM.add(this.vm, "RoleBase");
64 | }
65 |
66 | vmRemove() {
67 | VM.remove("RoleBase");
68 | }
69 |
70 | reset() {
71 | this.vmRemove();
72 |
73 | for (var key in this.vm) {
74 | this.vm[key] = 0;
75 | }
76 | }
77 | }
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleModelBaseComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "26768529-f065-4dc3-949f-557d97725547",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleModelComp.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-18 15:56:01
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-07-25 17:04:37
6 | */
7 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
8 | import { VM } from "../../../../../extensions/oops-plugin-framework/assets/libs/model-view/ViewModel";
9 | import { RoleNumeric } from "./attribute/RoleNumeric";
10 | import { RoleNumericMap } from "./attribute/RoleNumericMap";
11 | import { RoleAttributeType } from "./RoleEnum";
12 |
13 | /**
14 | * 角色属性数据
15 | *
16 | * 实现功能
17 | * 1、角色唯一基础数据
18 | * 2、角色战斗属性数据
19 | * 3、角色VM组件绑定数据
20 | *
21 | * 技术分析
22 | * 1、使用ecs.Comp做为数据层的基类,是为了后续业务开发过程中,只要ecs.Entity对象中包含了当前数据组件,就可以通过 ecs.Entity.get(RoleModelComp) 的方式获取对应子模块的数据
23 | */
24 | @ecs.register('RoleModel')
25 | export class RoleModelComp extends ecs.Comp {
26 | /** 角色编号 */
27 | id: number = -1;
28 |
29 | private _name: string = "";
30 | /** 昵称 */
31 | get name(): string {
32 | return this._name;
33 | }
34 | set name(value: string) {
35 | this._name = value;
36 | this.vm.name = value;
37 | }
38 |
39 | /** 动画名资源 */
40 | anim: string = "model1";
41 |
42 | /** 角色属性 */
43 | attributes: RoleNumericMap = null!;
44 |
45 | constructor() {
46 | super();
47 | this.attributes = new RoleNumericMap(this.vm);
48 | }
49 |
50 | /** 提供 VM 组件使用的数据 */
51 | private vm: any = {};
52 |
53 | vmAdd() {
54 | VM.add(this.vm, "Role");
55 | }
56 |
57 | vmRemove() {
58 | VM.remove("Role");
59 | }
60 |
61 | reset() {
62 | this.vmRemove();
63 |
64 | this.id = -1;
65 | this.name = "";
66 |
67 | for (var key in this.vm) {
68 | this.vm[key] = 0;
69 | }
70 | }
71 |
72 | toString() {
73 | console.log(`【${this.name}】的属性"--------------------------------------------`);
74 | this.attributes.forEach((value: RoleNumeric, key: RoleAttributeType) => {
75 | console.log(key, value.value);
76 | });
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "0b31330a-261d-4b13-a0d5-15d2727b1dbd",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleModelJobComp.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-24 10:04:56
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 19:54:52
6 | */
7 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
8 | import { TableRoleJob } from "../../common/table/TableRoleJob";
9 | import { RoleAttributeType } from "./RoleEnum";
10 | import { RoleModelComp } from "./RoleModelComp";
11 |
12 | /**
13 | * 角色职业数据
14 | *
15 | * 实现功能
16 | * 1、影响角色力量、敏捷战斗属性
17 | * 2、影响角色动画武器
18 | */
19 | @ecs.register('RoleModelJob')
20 | export class RoleModelJobComp extends ecs.Comp {
21 | private table: TableRoleJob = new TableRoleJob();
22 |
23 | /** 职业编号编号 */
24 | private _id: number = -1;
25 | get id(): number {
26 | return this._id;
27 | }
28 | set id(value: number) {
29 | this.table.init(value);
30 | this._id = value;
31 |
32 | var attributes = this.ent.get(RoleModelComp).attributes;
33 | attributes.get(RoleAttributeType.power).job = this.power;
34 | attributes.get(RoleAttributeType.agile).job = this.agile;
35 | }
36 | /** 职业名 */
37 | get armsName(): string {
38 | return this.table.armsName;
39 | }
40 | /** 力量 */
41 | get power(): number {
42 | return this.table.power;
43 | }
44 | /** 敏捷 */
45 | get agile(): number {
46 | return this.table.agile;
47 | }
48 | /** 武器类型 */
49 | get weaponType(): number[] {
50 | return this.table.weaponType;
51 | }
52 |
53 | reset() {
54 | this._id = -1;
55 | }
56 | }
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleModelJobComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "6414fcb5-5a65-4bb9-ab33-c3bf9a13ae3f",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleModelLevelComp.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-18 15:56:01
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 19:55:01
6 | */
7 |
8 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
9 | import { VM } from "../../../../../extensions/oops-plugin-framework/assets/libs/model-view/ViewModel";
10 | import { TableRoleLevelUp } from "../../common/table/TableRoleLevelUp";
11 |
12 | /**
13 | * 角色等级数据
14 | *
15 | * 实现功能
16 | * 1、角色等级变化时、获取升级配置表中的生命附加值叠加到角色属性上
17 | *
18 | * 技术分析
19 | * 1、等级模块直接通过数据访问层的API获取到本地等级配置表数据,通过当前等级匹配到配置表中的等级配置数据
20 | * 2、获取到的等级配置数据中的生命附加值,叠加到角色战斗属性的等级模块附加值上
21 | */
22 | @ecs.register('RoleModelLevel')
23 | export class RoleModelLevelComp extends ecs.Comp {
24 | /** 下个等级配置 */
25 | rtluNext: TableRoleLevelUp = new TableRoleLevelUp();
26 | /** 当前等级配置 */
27 | rtluCurrent: TableRoleLevelUp = new TableRoleLevelUp();
28 |
29 | /** 提供 VM 组件使用的数据 */
30 | vm: RoleLevelVM = new RoleLevelVM();
31 |
32 | vmAdd() {
33 | VM.add(this.vm, "RoleLevel");
34 | }
35 |
36 | vmRemove() {
37 | this.vm.reset();
38 | VM.remove("RoleLevel");
39 | }
40 |
41 | reset() {
42 | this.vmRemove();
43 | }
44 | }
45 |
46 | class RoleLevelVM {
47 | /** 当前等级 */
48 | lv: number = 0;
49 | /** 当前经验 */
50 | exp: number = 0;
51 | /** 下级经验 */
52 | expNext: number = 0;
53 |
54 | reset() {
55 | this.lv = 0;
56 | this.exp = 0;
57 | this.expNext = 0;
58 | }
59 | }
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleModelLevelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "9e999472-6fac-4a5e-b72c-0e8f8501ed77",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleNobilityModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "58956230-0127-4793-ad43-621ceedb7d25",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/RoleSkillModelComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "25e1a634-f8fe-44ca-9650-0d287532b566",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/attribute.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "38fb705f-feca-4939-bbd1-dd012b488aa6",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/attribute/RoleNumeric.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2022-01-20 18:20:32
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-02-09 13:11:39
6 | */
7 |
8 | import { RoleAttributeType } from "../RoleEnum";
9 | import { RoleNumericMap } from "./RoleNumericMap";
10 |
11 | /** 影响角色属性的模块 */
12 | export enum RoleModuleType {
13 | /** 初始默认属性 */
14 | Base,
15 | /** 职业附加属性 */
16 | Job,
17 | /** 等级附加属性 */
18 | Level,
19 | /** 装备附加属性 */
20 | Equip,
21 | /** 修饰器附加属性 */
22 | Decorator,
23 | /** 技能附加属性 */
24 | Skill
25 | }
26 |
27 | /**
28 | * 角色属性对象
29 | * 1、不同模块设置对应的属性值
30 | * 2、任意模块的属性值修改时,自动角色属性更新后的数值和
31 | */
32 | export class RoleNumeric {
33 | /** 数值更新事件 */
34 | onUpdate: Function = null!
35 |
36 | /** 属性类型 */
37 | type: RoleAttributeType = null!;
38 |
39 | /** 各模块附加值求和总数值 */
40 | value: number = 0;
41 |
42 | /** 属性值集合 */
43 | protected attributes: RoleNumericMap;
44 | /** 分组不同模块数值 */
45 | protected values: Map = new Map();
46 |
47 | constructor(type: RoleAttributeType, attributes: RoleNumericMap) {
48 | this.type = type;
49 | this.attributes = attributes;
50 |
51 | // 设置初始值
52 | var rmt = RoleModuleType;
53 | for (var key in rmt) {
54 | var k = Number(key);
55 | if (k > -1) this.values.set(k, 0);
56 | }
57 | }
58 |
59 | /** 获取指定模块属性值 */
60 | protected getValue(module: RoleModuleType) {
61 | return this.values.get(module);
62 | }
63 |
64 | /** 设置指定模块属性值 */
65 | protected setValue(module: RoleModuleType, value: number) {
66 | this.values.set(module, value);
67 | this.update();
68 | }
69 |
70 | protected update() {
71 | var result = 0;
72 | this.values.forEach(value => {
73 | result += value;
74 | });
75 | this.value = result;
76 |
77 | this.onUpdate && this.onUpdate(this);
78 | }
79 |
80 | reset() {
81 | this.values.clear();
82 | this.update();
83 | }
84 |
85 | /** 角色基础属性 */
86 | get base(): number {
87 | return this.getValue(RoleModuleType.Base)!;
88 | }
89 | set base(value: number) {
90 | this.setValue(RoleModuleType.Base, value);
91 | }
92 |
93 | /** 等级属性 */
94 | get level(): number {
95 | return this.getValue(RoleModuleType.Level)!;
96 | }
97 | set level(value: number) {
98 | this.setValue(RoleModuleType.Level, value);
99 | }
100 |
101 | /** 角色职业属性 */
102 | get job(): number {
103 | return this.getValue(RoleModuleType.Job)!;
104 | }
105 | set job(value: number) {
106 | this.setValue(RoleModuleType.Job, value);
107 | }
108 |
109 | /** 角色装备属性 */
110 | get equip(): number {
111 | return this.getValue(RoleModuleType.Equip)!;
112 | }
113 | set equip(value: number) {
114 | this.setValue(RoleModuleType.Equip, value);
115 | }
116 |
117 | /** 修饰器属性 */
118 | get decorator(): number {
119 | return this.getValue(RoleModuleType.Decorator)!;
120 | }
121 | set decorator(value: number) {
122 | this.setValue(RoleModuleType.Decorator, value);
123 | }
124 |
125 | /** 技能附加属性 */
126 | get skill(): number {
127 | return this.getValue(RoleModuleType.Skill)!;
128 | }
129 | set skill(value: number) {
130 | this.setValue(RoleModuleType.Skill, value);
131 | }
132 | }
--------------------------------------------------------------------------------
/assets/script/game/role/model/attribute/RoleNumeric.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "55650efd-4f72-4da7-b265-76948eeeca63",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/model/attribute/RoleNumericMap.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2022-01-21 09:33:44
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-02-09 12:16:28
6 | */
7 | import { RoleAttributeType } from "../RoleEnum";
8 | import { RoleNumeric } from "./RoleNumeric";
9 |
10 | /** 角色数值装饰器 */
11 | export class RoleNumericDecorator {
12 | /** 属性类型 */
13 | attribute: RoleAttributeType = null!;
14 | /** 属性数值 */
15 | value: number = 0;
16 | }
17 |
18 | /** 所有模块角色属性集合 */
19 | export class RoleNumericMap {
20 | /** 角色属性 */
21 | private attributes: Map = new Map();
22 | /** 角色属性修饰器 */
23 | private decorators: Map = new Map();
24 | /** VM组件数据 */
25 | private vm: any = null!;
26 |
27 | constructor(vm: any) {
28 | this.vm = vm;
29 | }
30 |
31 | /** 添加属性修饰器 */
32 | addDecorator(rnd: RoleNumericDecorator) {
33 | this.decorators.set(rnd, rnd.value);
34 | var rn = this.get(rnd.attribute);
35 | rn.decorator += rnd.value;
36 | }
37 |
38 | /** 移除属性修饰器 */
39 | removeDecorator(rnd: RoleNumericDecorator) {
40 | this.decorators.delete(rnd);
41 | var rn = this.get(rnd.attribute);
42 | rn.decorator -= rnd.value;
43 | }
44 |
45 | /** 获取角色属性 */
46 | get(type: RoleAttributeType): RoleNumeric {
47 | var attr = this.attributes.get(type);
48 | if (attr == null) {
49 | switch (type) {
50 | case RoleAttributeType.physical:
51 | attr = new RoleNumericPhysical(type, this);
52 | break;
53 | default:
54 | attr = new RoleNumeric(type, this);
55 | break;
56 | }
57 | this.attributes.set(type, attr);
58 |
59 | attr.onUpdate = (rn: RoleNumeric) => {
60 | this.vm[rn.type] = rn.value;
61 | };
62 | }
63 | return attr;
64 | }
65 |
66 | forEach(callbackfn: (value: RoleNumeric, key: RoleAttributeType, map: Map) => void, thisArg?: any): void {
67 | this.attributes.forEach(callbackfn, thisArg);
68 | }
69 |
70 | /** 重置属性值为零 */
71 | reset() {
72 | this.decorators.clear();
73 | this.attributes.forEach((value: RoleNumeric, key: RoleAttributeType, map: Map) => {
74 | value.reset();
75 | });
76 | }
77 | }
78 |
79 | /** 体质属性 */
80 | export class RoleNumericPhysical extends RoleNumeric {
81 | protected update(): void {
82 | super.update();
83 |
84 | // 每点体质 = 0.5 生命
85 | this.attributes.get(RoleAttributeType.hp).base = Math.floor(this.value * 0.5);
86 | }
87 | }
--------------------------------------------------------------------------------
/assets/script/game/role/model/attribute/RoleNumericMap.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "e317e44c-d724-4c2d-b3ea-974afefcfbed",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "b6c9dfb2-45d4-485c-8d0e-55a7f98e324e",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/AnimationEventHandler.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "71fe316b-1691-4a24-b0b8-8c6e88938401",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleStateAttack.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "6842e219-fc64-4f36-94ad-5874aa08735f",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleStateDead.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "95fb600c-f0c6-4720-94da-b222ff2a3574",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleStateHit.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.23",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "495b1f8f-d6a5-48bb-9a8c-4ed84361f127",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewAnimator.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-12-29 11:33:59
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 19:56:45
6 | */
7 | import { sp, _decorator } from "cc";
8 | import AnimatorSpine from "../../../../../extensions/oops-plugin-framework/assets/libs/animator/AnimatorSpine";
9 | import { AnimatorStateLogic } from "../../../../../extensions/oops-plugin-framework/assets/libs/animator/core/AnimatorStateLogic";
10 | import { RoleAnimatorType, WeaponName } from "../model/RoleEnum";
11 | import { Role } from "../Role";
12 | import { AnimationEventHandler } from "./animator/AnimationEventHandler";
13 | import { RoleStateAttack } from "./animator/RoleStateAttack";
14 | import { RoleStateDead } from "./animator/RoleStateDead";
15 | import { RoleStateHit } from "./animator/RoleStateHit";
16 |
17 | const { ccclass, property, requireComponent, disallowMultiple } = _decorator;
18 |
19 | /**
20 | * 角色SPINE动画控制
21 | *
22 | * 实现功能
23 | * 1、控制动作变化
24 | * 2、控制武器变化
25 | * 3、控制脸的朝向
26 | */
27 | @ccclass("RoleViewAnimator")
28 | @disallowMultiple
29 | @requireComponent(sp.Skeleton)
30 | export class RoleViewAnimator extends AnimatorSpine {
31 | /** 攻击行为完成 */
32 | onAttackComplete: Function = null!;
33 | /** 受击动作完成 */
34 | onHitActionComplete: Function = null!;
35 | /** 角色对象 */
36 | role: Role = null!;
37 |
38 | /** 武器动画名 */
39 | private weaponAnimName: string = null!;
40 |
41 | start() {
42 | super.start();
43 |
44 | // 动画状态机
45 | let anim = new AnimationEventHandler();
46 | let asl: Map = new Map();
47 | asl.set(RoleAnimatorType.Attack, new RoleStateAttack(this.role, anim));
48 | asl.set(RoleAnimatorType.Hurt, new RoleStateHit(this.role, anim));
49 | asl.set(RoleAnimatorType.Dead, new RoleStateDead(this.role, anim));
50 | this.initArgs(asl, anim);
51 | }
52 |
53 | /** 面象朝左 */
54 | left() {
55 | this.node.parent!.setScale(1, 1, 1);
56 | }
57 |
58 | /** 面象朝右 */
59 | right() {
60 | this.node.parent!.setScale(-1, 1, 1);
61 | }
62 |
63 | /** 当前动作换职业动画 */
64 | refresh() {
65 | // 状态机状态值未变时,不会触发状态变化事件,所以这里直接触发状态变化事件来触发后续流程
66 | this.onStateChange(this._ac.curState, this._ac.curState);
67 | }
68 |
69 | /**
70 | * 播放动画
71 | * @override
72 | * @param animName 动画名
73 | * @param loop 是否循环播放
74 | */
75 | protected playAnimation(animName: string, loop: boolean) {
76 | if (animName) {
77 | this.weaponAnimName = this.getWeaponAnimName();
78 | var name = `${animName}_${this.weaponAnimName}`;
79 | this._spine.setAnimation(0, name, loop);
80 | }
81 | else {
82 | this._spine.clearTrack(0);
83 | }
84 | }
85 |
86 | /** 武器动画剪辑名 */
87 | private getWeaponAnimName() {
88 | var job = this.role.RoleModelJob;
89 | var weaponAnimName = WeaponName[job.weaponType[0]];
90 | return weaponAnimName;
91 | }
92 | }
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewAnimator.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "a1be2022-0f27-472d-97e6-d445ac3d0df8",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewComp.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-18 17:42:59
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-08-05 10:32:42
6 | */
7 |
8 | import { sp, _decorator } from "cc";
9 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
10 | import { CCComp } from "../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
11 | import { Role } from "../Role";
12 | import { RoleEvent } from "../RoleEvent";
13 | import { RoleViewAnimator } from "./RoleViewAnimator";
14 | import { RoleViewController } from "./RoleViewController";
15 | import { RoleViewLoader } from "./RoleViewLoader";
16 |
17 | const { ccclass, property } = _decorator;
18 |
19 | /** 角色显示组件 */
20 | @ccclass('RoleViewComp') // 定义为 Cocos Creator 组件
21 | @ecs.register('RoleView', false) // 定义为 ECS 组件
22 | export class RoleViewComp extends CCComp {
23 | @property({ type: sp.Skeleton, tooltip: '角色动画' })
24 | spine: sp.Skeleton = null!;
25 |
26 | /** 角色动画资源管理 */
27 | loader: RoleViewLoader = null!;
28 | /** 角色动画规则管理 */
29 | animator: RoleViewAnimator = null!;
30 | /** 角色控制器 */
31 | controller: RoleViewController = null!;
32 |
33 | /** 视图层逻辑代码分离演示 */
34 | onLoad() {
35 | var role = this.ent as Role;
36 |
37 | this.loader = this.node.addComponent(RoleViewLoader);
38 | this.node.emit("load", role);
39 |
40 | this.animator = this.spine.getComponent(RoleViewAnimator)!;
41 | this.animator.role = role;
42 |
43 | this.controller = this.node.addComponent(RoleViewController);
44 | this.controller.role = role;
45 |
46 | this.on(RoleEvent.ChangeJob, this.onHandler, this);
47 | }
48 |
49 | /** 业务层全局消息通知视图层逻辑处理,两层之间逻辑解耦合演示 */
50 | private onHandler(event: string, args: any) {
51 | switch (event) {
52 | case RoleEvent.ChangeJob:
53 | this.animator.refresh();
54 | break;
55 | }
56 | }
57 |
58 | reset() {
59 | this.node.destroy();
60 | }
61 | }
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "60726b1a-adbb-480c-97cb-2c4fbbe7228b",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewController.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-18 17:42:59
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 17:57:33
6 | */
7 |
8 | import { Component, EventTouch, Node, UITransform, v3, _decorator } from "cc";
9 | import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
10 | import { Role } from "../Role";
11 |
12 | const { ccclass, property } = _decorator;
13 |
14 | /** 角色资源加载 */
15 | @ccclass('RoleViewController')
16 | export class RoleViewController extends Component {
17 | /** 角色对象 */
18 | role: Role = null!;
19 |
20 | onLoad() {
21 | oops.gui.game.on(Node.EventType.TOUCH_END, this.onTouchEnd, this);
22 | }
23 |
24 | private onTouchEnd(event: EventTouch) {
25 | // 注:角色移动控制代码在RPG类游戏中,应该设计到地图模块监听触摸事件。因为测试代码只有一个角色,为了简少DEMO代码量,只表达程序设计思想
26 | var uit = this.node.parent!.getComponent(UITransform)!;
27 | var x = event.getUILocation().x - uit.contentSize.width / 2;
28 | var y = event.getUILocation().y - uit.contentSize.height / 2;
29 | this.role.move(v3(x, y));
30 |
31 | if (x < this.role.RoleView.node.position.x)
32 | this.role.RoleView.animator.left();
33 | else
34 | this.role.RoleView.animator.right();
35 | }
36 |
37 | onDestroy() {
38 | oops.gui.game.off(Node.EventType.TOUCH_END, this.onTouchEnd, this);
39 | }
40 | }
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewController.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "2a2ff264-d54f-4668-917b-09538e50fda2",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewInfoComp.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2022-06-02 09:38:48
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2023-08-16 14:44:08
6 | */
7 | import { EventTouch, Node, _decorator } from "cc";
8 | import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
9 | import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
10 | import { CCComp } from "../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
11 | import { UIID } from "../../common/config/GameUIConfig";
12 | import { SingletonModuleComp } from "../../common/ecs/SingletonModuleComp";
13 |
14 | const { ccclass, property } = _decorator;
15 |
16 | /** 角色信息界面 */
17 | @ccclass('RoleViewInfoComp')
18 | @ecs.register('RoleViewInfo', false)
19 | export class RoleViewInfoComp extends CCComp {
20 | onAdded(args: any) {
21 | console.log(args);
22 | return true;
23 | }
24 |
25 | onLoad() {
26 | this.node.on(Node.EventType.TOUCH_END, this.onTouchEnd, this);
27 | }
28 |
29 | private onTouchEnd(event: EventTouch) {
30 | switch (event.target.name) {
31 | case "btn_levelup":
32 | var role = ecs.getSingleton(SingletonModuleComp).account.AccountModel.role;
33 | role.upgrade();
34 | break;
35 | case "btn_close":
36 | this.ent.remove(RoleViewInfoComp);
37 | break;
38 | }
39 |
40 | event.propagationStopped = true;
41 | }
42 |
43 | reset() {
44 | oops.gui.remove(UIID.Demo_Role_Info, false);
45 |
46 | // 注:模拟二次删除清理缓存
47 | // setTimeout(() => {
48 | // oops.gui.remove(UIID.Demo_Role_Info);
49 | // }, 1000);
50 | }
51 |
52 | protected onDestroy(): void {
53 | console.log("释放角色信息界面");
54 | }
55 | }
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewInfoComp.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "0f226e11-e1dd-4932-957f-38382114c904",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewLoader.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-11-18 17:42:59
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-08-11 15:04:39
6 | */
7 |
8 | import { Component, sp, _decorator } from "cc";
9 | import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
10 | import { GameResPath } from "../../common/config/GameResPath";
11 | import { Role } from "../Role";
12 |
13 | const { ccclass, property } = _decorator;
14 |
15 | /** 角色资源加载 */
16 | @ccclass('RoleViewLoader')
17 | export class RoleViewLoader extends Component {
18 | spine: sp.Skeleton = null!;
19 |
20 | onLoad() {
21 | this.node.on("load", this.onEmitLoad, this);
22 | }
23 |
24 | private onEmitLoad(role: Role) {
25 | this.spine = role.RoleView.spine;
26 | this.load(role.RoleModel.anim);
27 | }
28 |
29 | private load(name: string) {
30 | this.node.active = false;
31 |
32 | var path = GameResPath.getRolePath(name);
33 | oops.res.load(path, sp.SkeletonData, (err: Error | null, sd: sp.SkeletonData) => {
34 | if (err) {
35 | console.error(`动画名为【${path}】的角色资源不存在`);
36 | return;
37 | }
38 |
39 | this.spine.skeletonData = sd;
40 | this.spine.skeletonData.addRef();
41 | this.node.active = true;
42 | this.node.setPosition(0, -100);
43 | });
44 | }
45 |
46 | onDestroy() {
47 | if (this.spine.skeletonData) this.spine.skeletonData.decRef();
48 | }
49 | }
--------------------------------------------------------------------------------
/assets/script/game/role/view/RoleViewLoader.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "f8b091bb-afa5-4871-b9b7-6c939d412d7a",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/animator.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.2.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "b8e5c81d-6aa8-4b57-b517-0af8728426ba",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/animator/AnimationEventHandler.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-09-22 16:42:25
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 19:55:59
6 | */
7 |
8 | import AnimatorBase, { AnimationPlayer } from "../../../../../../extensions/oops-plugin-framework/assets/libs/animator/core/AnimatorBase";
9 |
10 | class FrameEventData {
11 | public callback!: Function;
12 | public target: any;
13 | }
14 |
15 | /** 模型动作自定义事件逻辑 */
16 | export class AnimationEventHandler implements AnimationPlayer {
17 | private frameEvents: Map = new Map();
18 | private finishedEvents: Map = new Map();
19 |
20 | public addFrameEvent(type: string, callback: Function, target: any) {
21 | var data = new FrameEventData();
22 | data.callback = callback;
23 | data.target = target;
24 | this.frameEvents.set(type, data);
25 | }
26 |
27 | public addFinishedEvent(type: string, callback: Function, target: any) {
28 | var data = new FrameEventData();
29 | data.callback = callback;
30 | data.target = target;
31 | this.finishedEvents.set(type, data);
32 | }
33 |
34 | onFrameEventCallback(type: string, target: AnimatorBase): void {
35 | var data = this.frameEvents.get(type);
36 | if (data)
37 | data.callback.call(data.target, type, target);
38 | }
39 |
40 | onFinishedCallback(target: AnimatorBase): void {
41 | var data = this.finishedEvents.get(target.curStateName);
42 | if (data)
43 | data.callback.call(data.target, target.curStateName, target);
44 | }
45 |
46 | playAnimation(animName: string, loop: boolean): void {
47 |
48 | }
49 |
50 | scaleTime(scale: number): void {
51 |
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/animator/AnimationEventHandler.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "f0c5a787-4c5e-41f5-aee1-83adad904a5e",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/animator/RoleStateAttack.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-09-01 15:19:04
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 19:56:14
6 | */
7 | import { AnimatorStateLogic } from "../../../../../../extensions/oops-plugin-framework/assets/libs/animator/core/AnimatorStateLogic";
8 | import { Role } from "../../Role";
9 | import { AnimationEventHandler } from "./AnimationEventHandler";
10 |
11 | /** 攻击状态逻辑 */
12 | export class RoleStateAttack extends AnimatorStateLogic {
13 | private role: Role;
14 | private anim: AnimationEventHandler;
15 |
16 | public constructor(role: Role, anim: AnimationEventHandler) {
17 | super();
18 | this.role = role;
19 | this.anim = anim;
20 | this.anim.addFrameEvent("attack", this.onAttack, this);
21 | }
22 |
23 | private onAttack() {
24 | var onAttackComplete = this.role.RoleView.animator.onAttackComplete;
25 | onAttackComplete && onAttackComplete();
26 | }
27 |
28 | public onEntry() {
29 |
30 | }
31 |
32 | public onUpdate() {
33 |
34 | }
35 |
36 | public onExit() {
37 |
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/animator/RoleStateAttack.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "f4792744-d3f9-4d49-8ee6-b0345898d205",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/animator/RoleStateDead.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2022-01-26 16:07:58
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 19:56:19
6 | */
7 | import { AnimatorStateLogic } from "../../../../../../extensions/oops-plugin-framework/assets/libs/animator/core/AnimatorStateLogic";
8 | import { Role } from "../../Role";
9 | import { AnimationEventHandler } from "./AnimationEventHandler";
10 |
11 | /** 受击状态逻辑 */
12 | export class RoleStateDead extends AnimatorStateLogic {
13 | private role: Role;
14 | private anim: AnimationEventHandler;
15 |
16 | public constructor(role: Role, anim: AnimationEventHandler) {
17 | super();
18 | this.role = role;
19 | this.anim = anim;
20 | this.anim.addFrameEvent("dead", this.onDead, this);
21 | }
22 |
23 | private onDead() {
24 | var onHitActionComplete = this.role.RoleView.animator.onHitActionComplete;
25 | onHitActionComplete && onHitActionComplete();
26 | }
27 |
28 | public onEntry() {
29 |
30 | }
31 |
32 | public onUpdate() {
33 |
34 | }
35 |
36 | public onExit() {
37 |
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/animator/RoleStateDead.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "9ee69db5-1542-4ec8-9b17-5b1090d47cfb",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/animator/RoleStateHit.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: dgflash
3 | * @Date: 2021-09-01 15:19:04
4 | * @LastEditors: dgflash
5 | * @LastEditTime: 2022-06-14 19:56:35
6 | */
7 | import { AnimatorStateLogic } from "../../../../../../extensions/oops-plugin-framework/assets/libs/animator/core/AnimatorStateLogic";
8 | import { Role } from "../../Role";
9 | import { AnimationEventHandler } from "./AnimationEventHandler";
10 |
11 | /** 受击状态逻辑 */
12 | export class RoleStateHit extends AnimatorStateLogic {
13 | private role: Role;
14 | private anim: AnimationEventHandler;
15 |
16 | public constructor(role: Role, anim: AnimationEventHandler) {
17 | super();
18 | this.role = role;
19 | this.anim = anim;
20 | }
21 |
22 |
23 | public onEntry() {
24 |
25 | }
26 |
27 | public onUpdate() {
28 |
29 | }
30 |
31 | public onExit() {
32 | var onHitActionComplete = this.role.RoleView.animator.onHitActionComplete;
33 | onHitActionComplete && onHitActionComplete();
34 | }
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/animator/RoleStateHit.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "4.0.24",
3 | "importer": "typescript",
4 | "imported": true,
5 | "uuid": "ea68bd21-e518-4c5c-9250-92430ce0b74c",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {}
9 | }
10 |
--------------------------------------------------------------------------------
/assets/script/game/role/view/component.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "b3bb384b-5a96-4e00-a5f8-29bd621bdf99",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/assets/script/game/skill.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.1.0",
3 | "importer": "directory",
4 | "imported": true,
5 | "uuid": "a80a879f-d214-454c-a574-18f080ae0d91",
6 | "files": [],
7 | "subMetas": {},
8 | "userData": {
9 | "compressionType": {},
10 | "isRemoteBundle": {}
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/doc/images/editor1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/images/editor1.png
--------------------------------------------------------------------------------
/doc/images/example1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/images/example1.gif
--------------------------------------------------------------------------------
/doc/images/operate1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/images/operate1.gif
--------------------------------------------------------------------------------
/doc/images/operate2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/images/operate2.gif
--------------------------------------------------------------------------------
/doc/images/operate3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/images/operate3.gif
--------------------------------------------------------------------------------
/doc/images/operate4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/images/operate4.gif
--------------------------------------------------------------------------------
/doc/images/runtime1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/images/runtime1.png
--------------------------------------------------------------------------------
/doc/images/runtime2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/images/runtime2.png
--------------------------------------------------------------------------------
/doc/img/module.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/img/module.png
--------------------------------------------------------------------------------
/doc/img/oops-plug-in1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/img/oops-plug-in1.jpg
--------------------------------------------------------------------------------
/doc/img/oops-plug-in2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/img/oops-plug-in2.jpg
--------------------------------------------------------------------------------
/doc/img/tools.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/doc/img/tools.jpg
--------------------------------------------------------------------------------
/doc/using.md:
--------------------------------------------------------------------------------
1 | ### 框架使用说明
2 | Oops Framework从3.5.2版本开始以Cocos Creator插件方式提供使用,这样设计的目的是为了方便作者升级框架功能与修复问题时,方便的去更新框架。
3 |
4 | ### 自动更新最新分支框架版本
5 | 打开Cocos Creator项目目录,执行下列命令
6 |
7 | ###### windows
8 | ```
9 | md extensions
10 | cd extensions
11 | git clone -b master https://gitee.com/dgflash/oops-plugin-framework.git
12 | git pull
13 | ```
14 | ###### mac
15 | ```
16 | mkdir -p extensions
17 | cd extensions
18 | git clone -b master https://gitee.com/dgflash/oops-plugin-framework.git
19 | git pull
20 | ```
--------------------------------------------------------------------------------
/excel/Language.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/excel/Language.xlsx
--------------------------------------------------------------------------------
/excel/PromptWindow.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/excel/PromptWindow.xlsx
--------------------------------------------------------------------------------
/excel/RoleJob.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/excel/RoleJob.xlsx
--------------------------------------------------------------------------------
/excel/RoleLevelUp.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/excel/RoleLevelUp.xlsx
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "oops-framework",
3 | "version": "3.5.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "dependencies": {
9 | "crypto-es": "^1.2.7"
10 | },
11 | "devDependencies": {
12 | "@types/node": "^17.0.25"
13 | }
14 | },
15 | "node_modules/@types/node": {
16 | "version": "17.0.25",
17 | "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz",
18 | "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==",
19 | "dev": true
20 | },
21 | "node_modules/crypto-es": {
22 | "version": "1.2.7",
23 | "resolved": "https://registry.npmjs.org/crypto-es/-/crypto-es-1.2.7.tgz",
24 | "integrity": "sha512-UUqiVJ2gUuZFmbFsKmud3uuLcNP2+Opt+5ysmljycFCyhA0+T16XJmo1ev/t5kMChMqWh7IEvURNCqsg+SjZGQ=="
25 | }
26 | },
27 | "dependencies": {
28 | "@types/node": {
29 | "version": "17.0.25",
30 | "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz",
31 | "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==",
32 | "dev": true
33 | },
34 | "crypto-es": {
35 | "version": "1.2.7",
36 | "resolved": "https://registry.npmjs.org/crypto-es/-/crypto-es-1.2.7.tgz",
37 | "integrity": "sha512-UUqiVJ2gUuZFmbFsKmud3uuLcNP2+Opt+5ysmljycFCyhA0+T16XJmo1ev/t5kMChMqWh7IEvURNCqsg+SjZGQ=="
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "creator": {
3 | "version": "3.8.5"
4 | },
5 | "dependencies": {},
6 | "description": "oops-framework",
7 | "devDependencies": {
8 | "@types/node": "^17.0.25"
9 | },
10 | "name": "oops-framework",
11 | "uuid": "c30b28da-749e-479b-bcb6-cecd8d7be9e3"
12 | }
13 |
--------------------------------------------------------------------------------
/settings/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dgflash/oops-framework/daae887c021d8417dd23c2df2446038b239f1862/settings/logo.png
--------------------------------------------------------------------------------
/settings/v2/packages/cocos-service.json:
--------------------------------------------------------------------------------
1 | {
2 | "__version__": "3.0.8",
3 | "game": {
4 | "name": "未知游戏",
5 | "app_id": "UNKNOW",
6 | "c_id": "0"
7 | },
8 | "appConfigMaps": [
9 | {
10 | "app_id": "UNKNOW",
11 | "config_id": "6d4dd7"
12 | }
13 | ],
14 | "configs": [
15 | {
16 | "app_id": "UNKNOW",
17 | "config_id": "6d4dd7",
18 | "config_name": "Default",
19 | "config_remarks": "",
20 | "services": []
21 | }
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/settings/v2/packages/device.json:
--------------------------------------------------------------------------------
1 | {
2 | "__version__": "1.0.1"
3 | }
4 |
--------------------------------------------------------------------------------
/settings/v2/packages/information.json:
--------------------------------------------------------------------------------
1 | {
2 | "__version__": "1.0.1",
3 | "information": {
4 | "customSplash": {
5 | "id": "customSplash",
6 | "label": "customSplash",
7 | "enable": true,
8 | "customSplash": {
9 | "complete": true,
10 | "form": "https://creator-api.cocos.com/api/form/show?sid=af447cd43b16009ccb9a94ab7b8412ef"
11 | }
12 | },
13 | "removeSplash": {
14 | "id": "removeSplash",
15 | "label": "removeSplash",
16 | "enable": true,
17 | "removeSplash": {
18 | "complete": true,
19 | "form": "https://creator-api.cocos.com/api/form/show?sid=af447cd43b16009ccb9a94ab7b8412ef"
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/settings/v2/packages/oops-plugin-excel-to-json.json:
--------------------------------------------------------------------------------
1 | {
2 | "__version__": "1.0.0",
3 | "PathJson": "../../../assets/resources/config/game/",
4 | "PathExcel": "project://excel",
5 | "PathTs": "../../../assets/script/game/common/table/",
6 | "PathJsonClient": "project://assets/resources/config/game",
7 | "PathTsClient": "project://assets/script/game/common/table"
8 | }
9 |
--------------------------------------------------------------------------------
/settings/v2/packages/program.json:
--------------------------------------------------------------------------------
1 | {
2 | "__version__": "1.0.4"
3 | }
4 |
--------------------------------------------------------------------------------
/settings/v2/packages/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "__version__": "1.0.6",
3 | "general": {
4 | "designResolution": {
5 | "width": 1200,
6 | "height": 720,
7 | "fitWidth": false,
8 | "fitHeight": true
9 | }
10 | },
11 | "custom_joint_texture_layouts": [],
12 | "script": {
13 | "preserveSymlinks": true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/settings/v2/packages/scene.json:
--------------------------------------------------------------------------------
1 | {
2 | "__version__": "1.0.2",
3 | "current-scene": "ba0b085f-f8d5-40b0-9964-2fd25728d707"
4 | }
5 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | /* Base configuration. Do not edit this field. */
3 | "extends": "./temp/tsconfig.cocos.json",
4 | /* Add your custom configuration here. */
5 | "compilerOptions": {
6 | "strict": true
7 | }
8 | }
--------------------------------------------------------------------------------
/update-oops-plugin-excel-to-json.bat:
--------------------------------------------------------------------------------
1 | md extensions
2 | cd extensions
3 |
4 | IF EXIST oops-plugin-excel-to-json (
5 | goto update
6 | ) ELSE (
7 | goto clone
8 | )
9 |
10 | :clone
11 | git clone -b master https://gitee.com/dgflash/oops-plugin-excel-to-json.git
12 |
13 | :update
14 | cd oops-plugin-excel-to-json
15 | git pull
16 |
17 | npm install
--------------------------------------------------------------------------------
/update-oops-plugin-excel-to-json.sh:
--------------------------------------------------------------------------------
1 | if [ ! -d "extensions" ]; then
2 | mkdir extensions
3 | fi
4 | cd extensions
5 |
6 | if [ ! -d "oops-plugin-excel-to-json" ]; then
7 | git clone -b master https://gitee.com/dgflash/oops-plugin-excel-to-json.git
8 | else
9 | cd oops-plugin-excel-to-json
10 | git pull
11 | fi
12 |
13 | npm install
--------------------------------------------------------------------------------
/update-oops-plugin-framework.bat:
--------------------------------------------------------------------------------
1 | md extensions
2 | cd extensions
3 |
4 | IF EXIST oops-plugin-framework (
5 | goto update
6 | ) ELSE (
7 | goto clone
8 | )
9 |
10 | :clone
11 | git clone -b master https://gitee.com/dgflash/oops-plugin-framework.git
12 |
13 | :update
14 | cd oops-plugin-framework
15 | git pull
16 |
17 | npm install
--------------------------------------------------------------------------------
/update-oops-plugin-framework.sh:
--------------------------------------------------------------------------------
1 | if [ ! -d "extensions" ]; then
2 | mkdir extensions
3 | fi
4 | cd extensions
5 |
6 | if [ ! -d "oops-plugin-framework" ]; then
7 | git clone -b master https://gitee.com/dgflash/oops-plugin-framework.git
8 | else
9 | cd oops-plugin-framework
10 | git pull
11 | fi
12 |
13 | npm install
--------------------------------------------------------------------------------
/update-oops-plugin-hot-update.bat:
--------------------------------------------------------------------------------
1 | md extensions
2 | cd extensions
3 |
4 | IF EXIST oops-plugin-hot-update (
5 | goto update
6 | ) ELSE (
7 | goto clone
8 | )
9 |
10 | :clone
11 | git clone -b master https://gitee.com/dgflash/oops-plugin-hot-update.git
12 |
13 | :update
14 | cd oops-plugin-hot-update
15 | git pull
--------------------------------------------------------------------------------
/update-oops-plugin-hot-update.sh:
--------------------------------------------------------------------------------
1 | if [ ! -d "extensions" ]; then
2 | mkdir extensions
3 | fi
4 | cd extensions
5 |
6 | if [ ! -d "oops-plugin-hot-update" ]; then
7 | git clone -b master https://gitee.com/dgflash/oops-plugin-hot-update.git
8 | else
9 | cd oops-plugin-hot-update
10 | git pull
11 | fi
12 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@types/node@^17.0.25":
6 | "integrity" "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w=="
7 | "resolved" "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz"
8 | "version" "17.0.25"
9 |
10 | "crypto-es@^1.2.7":
11 | "integrity" "sha512-UUqiVJ2gUuZFmbFsKmud3uuLcNP2+Opt+5ysmljycFCyhA0+T16XJmo1ev/t5kMChMqWh7IEvURNCqsg+SjZGQ=="
12 | "resolved" "https://registry.npmjs.org/crypto-es/-/crypto-es-1.2.7.tgz"
13 | "version" "1.2.7"
14 |
--------------------------------------------------------------------------------