打地鼠重置
This commit is contained in:
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -19,7 +19,22 @@ MonoBehaviour:
|
||||
m_Key: line:0559767
|
||||
m_Metadata:
|
||||
m_Items:
|
||||
- rid: 2067218726650904583
|
||||
- rid: 2067218753147109378
|
||||
- m_Id: 26134354672488448
|
||||
m_Key: line:02365db
|
||||
m_Metadata:
|
||||
m_Items:
|
||||
- rid: 2067218753147109379
|
||||
- m_Id: 26134354676682752
|
||||
m_Key: line:0ee9c21
|
||||
m_Metadata:
|
||||
m_Items:
|
||||
- rid: 2067218753147109380
|
||||
- m_Id: 26134354676682753
|
||||
m_Key: line:003a5c5
|
||||
m_Metadata:
|
||||
m_Items:
|
||||
- rid: 2067218753147109381
|
||||
m_Metadata:
|
||||
m_Items: []
|
||||
m_KeyGenerator:
|
||||
@@ -31,8 +46,23 @@ MonoBehaviour:
|
||||
type: {class: DistributedUIDGenerator, ns: UnityEngine.Localization.Tables, asm: Unity.Localization}
|
||||
data:
|
||||
m_CustomEpoch: 1747199431587
|
||||
- rid: 2067218726650904583
|
||||
- rid: 2067218753147109378
|
||||
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
|
||||
data:
|
||||
nodeName: Start
|
||||
tags: []
|
||||
- rid: 2067218753147109379
|
||||
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
|
||||
data:
|
||||
nodeName: Start
|
||||
tags: []
|
||||
- rid: 2067218753147109380
|
||||
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
|
||||
data:
|
||||
nodeName: "\u6253\u5730\u9F20\u6E38\u620F\u901A\u8FC7"
|
||||
tags: []
|
||||
- rid: 2067218753147109381
|
||||
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
|
||||
data:
|
||||
nodeName: "\u6253\u5730\u9F20\u6E38\u620F\u5931\u8D25"
|
||||
tags: []
|
||||
|
||||
@@ -22,6 +22,18 @@ MonoBehaviour:
|
||||
m_Localized: "me: \u6253\u5730\u9F20\u6D4B\u8BD5"
|
||||
m_Metadata:
|
||||
m_Items: []
|
||||
- m_Id: 26134354672488448
|
||||
m_Localized: "me: \u6D4B\u8BD5[[size]]\u53D8\u5927[[/size]]\u6B63\u5E38"
|
||||
m_Metadata:
|
||||
m_Items: []
|
||||
- m_Id: 26134354676682752
|
||||
m_Localized: "me: \u6210\u529F"
|
||||
m_Metadata:
|
||||
m_Items: []
|
||||
- m_Id: 26134354676682753
|
||||
m_Localized: "me: \u5931\u8D25"
|
||||
m_Metadata:
|
||||
m_Items: []
|
||||
references:
|
||||
version: 2
|
||||
RefIds: []
|
||||
|
||||
@@ -488,7 +488,7 @@ Material:
|
||||
- _WindXPosition: 0
|
||||
- _WorldTilingPixelsPerUnit: 100
|
||||
m_Colors:
|
||||
- _AddColorColor: {r: 2.996078, g: 0, b: 0, a: 0}
|
||||
- _AddColorColor: {r: 0.913099, g: 0.14995982, b: 0.14995982, a: 1}
|
||||
- _AlphaTintColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _BlackTintColor: {r: 0, g: 0, b: 1, a: 0}
|
||||
- _BurnEdgeColor: {r: 11.98431, g: 1.129412, b: 0.1254902, a: 0}
|
||||
@@ -595,7 +595,7 @@ Material:
|
||||
- _ShiftingColorA: {r: 1.498039, g: 0, b: 0, a: 0}
|
||||
- _ShiftingColorB: {r: 1.498039, g: 0.7490196, b: 0, a: 0}
|
||||
- _ShineColor: {r: 11.98431, g: 11.98431, b: 11.98431, a: 0}
|
||||
- _SineGlowColor: {r: 0, g: 2.007843, b: 2.996078, a: 0}
|
||||
- _SineGlowColor: {r: 0.79129815, g: 0.36130688, b: 0.045186214, a: 1}
|
||||
- _SineMoveFrequency: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _SineMoveOffset: {r: 0, g: 0.5, b: 0, a: 0}
|
||||
- _SineRotatePivot: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
|
||||
Binary file not shown.
@@ -93,132 +93,6 @@ ScriptedImporter:
|
||||
uvTransform: {x: 0, y: 0}
|
||||
spritePosition: {x: 0, y: 0}
|
||||
mosaicSpriteImportData:
|
||||
- name: EXPRESION
|
||||
originalName:
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
alignment: 0
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 240
|
||||
y: 7932
|
||||
width: 175
|
||||
height: 25
|
||||
spriteID: cac8e98ca09555145be1c8e98e17adbe
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 240, y: 7932}
|
||||
spritePosition: {x: 1135, y: 427}
|
||||
- name: 'LOGIC '
|
||||
originalName:
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
alignment: 0
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 302
|
||||
y: 7448
|
||||
width: 25
|
||||
height: 107
|
||||
spriteID: 24f4f1b70d5a63546ae8f128c3185327
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 302, y: 7448}
|
||||
spritePosition: {x: 1509, y: 1472}
|
||||
- name: 'EMOT '
|
||||
originalName:
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
alignment: 0
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 302
|
||||
y: 7563
|
||||
width: 25
|
||||
height: 97
|
||||
spriteID: 1f86f8254e117ac46a16c855741ba4b3
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 302, y: 7563}
|
||||
spritePosition: {x: 897, y: 1490}
|
||||
- name: MEMORY
|
||||
originalName:
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
alignment: 0
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 302
|
||||
y: 7382
|
||||
width: 132
|
||||
height: 25
|
||||
spriteID: 34120f3620ef9d447a1bb64297147be5
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 302, y: 7382}
|
||||
spritePosition: {x: 1184, y: 1634}
|
||||
- name: 'VISION '
|
||||
originalName:
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
alignment: 0
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 302
|
||||
y: 7415
|
||||
width: 108
|
||||
height: 25
|
||||
spriteID: 301c88c7258ca894aa24d5888e22f4af
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 302, y: 7415}
|
||||
spritePosition: {x: 1388, y: 1204}
|
||||
- name: EXTENSION
|
||||
originalName:
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
alignment: 0
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 240
|
||||
y: 7899
|
||||
width: 181
|
||||
height: 25
|
||||
spriteID: 9b807da2e21e8d04aae917d529c7dcc0
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 240, y: 7899}
|
||||
spritePosition: {x: 1132, y: 1364}
|
||||
- name: "\u60C5\u611F\u53F3"
|
||||
originalName:
|
||||
pivot: {x: 1, y: 0.5}
|
||||
@@ -226,8 +100,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 441
|
||||
y: 7670
|
||||
x: 2020
|
||||
y: 6138
|
||||
width: 49
|
||||
height: 81
|
||||
spriteID: 8ee1829f145adac4cada54af0898e927
|
||||
@@ -238,7 +112,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 442, y: 7670}
|
||||
uvTransform: {x: 2020, y: 6138}
|
||||
spritePosition: {x: 793, y: 1499}
|
||||
- name: "\u60C5\u611F\u5DE6"
|
||||
originalName:
|
||||
@@ -247,8 +121,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 338
|
||||
y: 7965
|
||||
x: 1421
|
||||
y: 5519
|
||||
width: 41
|
||||
height: 81
|
||||
spriteID: 47f41d9c8ff3fe74b85fc28bbcb73708
|
||||
@@ -259,7 +133,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 338, y: 7965}
|
||||
uvTransform: {x: 1421, y: 5519}
|
||||
spritePosition: {x: 761, y: 1499}
|
||||
- name: "\u8BB0\u5FC6\u53F3"
|
||||
originalName:
|
||||
@@ -268,8 +142,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 328
|
||||
y: 7670
|
||||
x: 1792
|
||||
y: 6138
|
||||
width: 49
|
||||
height: 82
|
||||
spriteID: 880150e9e43b11e4e80eb0f0e31d2d7b
|
||||
@@ -280,7 +154,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 328, y: 7670}
|
||||
uvTransform: {x: 1792, y: 6138}
|
||||
spritePosition: {x: 1018, y: 1543}
|
||||
- name: "\u8BB0\u5FC6\u5DE6"
|
||||
originalName:
|
||||
@@ -289,8 +163,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 414
|
||||
y: 7197
|
||||
x: 1364
|
||||
y: 5518
|
||||
width: 41
|
||||
height: 82
|
||||
spriteID: 2ac67bad364284f40882e9f8f7317c31
|
||||
@@ -301,7 +175,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 414, y: 7197}
|
||||
uvTransform: {x: 1364, y: 5518}
|
||||
spritePosition: {x: 986, y: 1543}
|
||||
- name: "\u601D\u7EF4\u53F3"
|
||||
originalName:
|
||||
@@ -310,8 +184,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 328
|
||||
y: 7760
|
||||
x: 1849
|
||||
y: 6138
|
||||
width: 49
|
||||
height: 82
|
||||
spriteID: a48543e6cca7c324888144d2dcf84484
|
||||
@@ -322,7 +196,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 328, y: 7760}
|
||||
uvTransform: {x: 1849, y: 6138}
|
||||
spritePosition: {x: 1579, y: 1443}
|
||||
- name: "\u601D\u7EF4\u5DE6"
|
||||
originalName:
|
||||
@@ -331,8 +205,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 414
|
||||
y: 7287
|
||||
x: 1364
|
||||
y: 5608
|
||||
width: 41
|
||||
height: 82
|
||||
spriteID: aabe36443d7d4364491cc2fe72f7ece9
|
||||
@@ -343,7 +217,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 414, y: 7287}
|
||||
uvTransform: {x: 1364, y: 5608}
|
||||
spritePosition: {x: 1547, y: 1443}
|
||||
- name: "\u8BED\u8A00\u53F3"
|
||||
originalName:
|
||||
@@ -352,8 +226,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 442
|
||||
y: 7759
|
||||
x: 2077
|
||||
y: 6138
|
||||
width: 49
|
||||
height: 81
|
||||
spriteID: 085c33f36bebaa741be012c596e618fa
|
||||
@@ -364,7 +238,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 442, y: 7759}
|
||||
uvTransform: {x: 2077, y: 6138}
|
||||
spritePosition: {x: 1212, y: 492}
|
||||
- name: "\u8BED\u8A00\u5DE6"
|
||||
originalName:
|
||||
@@ -373,8 +247,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 387
|
||||
y: 7965
|
||||
x: 1421
|
||||
y: 5608
|
||||
width: 41
|
||||
height: 81
|
||||
spriteID: 42f26d908c37d454b9e983b63ef74953
|
||||
@@ -385,7 +259,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 387, y: 7965}
|
||||
uvTransform: {x: 1421, y: 5608}
|
||||
spritePosition: {x: 1180, y: 492}
|
||||
- name: "\u6269\u5C55\u53F3"
|
||||
originalName:
|
||||
@@ -394,8 +268,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 385
|
||||
y: 7670
|
||||
x: 1906
|
||||
y: 6138
|
||||
width: 49
|
||||
height: 82
|
||||
spriteID: 6bf14ad1201e0a444b4335a3e586b778
|
||||
@@ -406,7 +280,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 385, y: 7670}
|
||||
uvTransform: {x: 1906, y: 6138}
|
||||
spritePosition: {x: 1212, y: 1016}
|
||||
- name: "\u6269\u5C55\u5DE6"
|
||||
originalName:
|
||||
@@ -415,8 +289,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 240
|
||||
y: 7965
|
||||
x: 1364
|
||||
y: 5698
|
||||
width: 41
|
||||
height: 82
|
||||
spriteID: a81772844f9f7d7458a487ce9aac3bc5
|
||||
@@ -427,7 +301,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 240, y: 7965}
|
||||
uvTransform: {x: 1364, y: 5698}
|
||||
spritePosition: {x: 1180, y: 1016}
|
||||
- name: "\u5DE6\u773C\u5DE6"
|
||||
originalName:
|
||||
@@ -436,8 +310,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 414
|
||||
y: 7108
|
||||
x: 1364
|
||||
y: 5429
|
||||
width: 49
|
||||
height: 81
|
||||
spriteID: 391befd4d6c68fa4c8137aea4fc0906a
|
||||
@@ -448,7 +322,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 414, y: 7108}
|
||||
uvTransform: {x: 1364, y: 5429}
|
||||
spritePosition: {x: 949, y: 1039}
|
||||
- name: "\u5DE6\u773C\u53F3"
|
||||
originalName:
|
||||
@@ -457,8 +331,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 436
|
||||
y: 7965
|
||||
x: 1421
|
||||
y: 5697
|
||||
width: 41
|
||||
height: 81
|
||||
spriteID: 66812d7769a083f4d969c545d4741b76
|
||||
@@ -469,7 +343,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 436, y: 7965}
|
||||
uvTransform: {x: 1421, y: 5697}
|
||||
spritePosition: {x: 917, y: 1039}
|
||||
- name: "\u53F3\u773C\u5DE6"
|
||||
originalName:
|
||||
@@ -478,8 +352,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 385
|
||||
y: 7760
|
||||
x: 1963
|
||||
y: 6138
|
||||
width: 49
|
||||
height: 82
|
||||
spriteID: fc8b43481499fbb42bdbc7fe3da8860d
|
||||
@@ -490,7 +364,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 385, y: 7760}
|
||||
uvTransform: {x: 1963, y: 6138}
|
||||
spritePosition: {x: 1470, y: 1039}
|
||||
- name: "\u53F3\u773C\u53F3"
|
||||
originalName:
|
||||
@@ -499,8 +373,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 289
|
||||
y: 7965
|
||||
x: 1421
|
||||
y: 5429
|
||||
width: 41
|
||||
height: 82
|
||||
spriteID: 6ec3d202dbc4b924d979298a5d9a9162
|
||||
@@ -511,8 +385,134 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 289, y: 7965}
|
||||
uvTransform: {x: 1421, y: 5429}
|
||||
spritePosition: {x: 1438, y: 1039}
|
||||
- name: "\u8868\u8FBE\u80CC\u666F"
|
||||
originalName:
|
||||
pivot: {x: 0, y: 0.5}
|
||||
alignment: 4
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1858
|
||||
y: 4680
|
||||
width: 182
|
||||
height: 33
|
||||
spriteID: f83ccab486a753044aaea7ced26c7e5c
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 1858, y: 4680}
|
||||
spritePosition: {x: 1132, y: 423}
|
||||
- name: "\u8BB0\u5FC6\u80CC\u666F"
|
||||
originalName:
|
||||
pivot: {x: 0, y: 0.5}
|
||||
alignment: 4
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1929
|
||||
y: 6047
|
||||
width: 134
|
||||
height: 39
|
||||
spriteID: f2e87c161ca7592448ca53b02b4f34b4
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 1929, y: 6047}
|
||||
spritePosition: {x: 1181, y: 1629}
|
||||
- name: "\u601D\u7EF4\u80CC\u666F"
|
||||
originalName:
|
||||
pivot: {x: 0, y: 0.5}
|
||||
alignment: 4
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1792
|
||||
y: 6100
|
||||
width: 136
|
||||
height: 30
|
||||
spriteID: 1dd2f0bb806a9d147b547afdda2b28eb
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 1792, y: 6100}
|
||||
spritePosition: {x: 1453, y: 1514}
|
||||
- name: "\u89C6\u89C9\u80CC\u666F"
|
||||
originalName:
|
||||
pivot: {x: 0, y: 0.5}
|
||||
alignment: 4
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1792
|
||||
y: 6047
|
||||
width: 129
|
||||
height: 45
|
||||
spriteID: 10241bb3ac5f4b94cbe4ee6ee47efb8f
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 1792, y: 6047}
|
||||
spritePosition: {x: 1379, y: 1195}
|
||||
- name: "\u60C5\u7EEA\u80CC\u666F"
|
||||
originalName:
|
||||
pivot: {x: 0, y: 0.5}
|
||||
alignment: 4
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1936
|
||||
y: 6100
|
||||
width: 134
|
||||
height: 28
|
||||
spriteID: 5f163d43ad7427943b115f60eea853b3
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 1936, y: 6100}
|
||||
spritePosition: {x: 843, y: 1527}
|
||||
- name: "\u62D3\u5C55\u80CC\u666F"
|
||||
originalName:
|
||||
pivot: {x: 0, y: 0.5}
|
||||
alignment: 4
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1858
|
||||
y: 4628
|
||||
width: 217
|
||||
height: 44
|
||||
spriteID: 279ac1e75adc0e04191fcebfbfae499b
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 1858, y: 4628}
|
||||
spritePosition: {x: 1114, y: 1355}
|
||||
- name: "\u82F1\u91CC\u8BB2\u8BDD\u6A21\u5757"
|
||||
originalName:
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
@@ -520,8 +520,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
y: 7899
|
||||
x: 1364
|
||||
y: 5188
|
||||
width: 228
|
||||
height: 233
|
||||
spriteID: 77c7308e7564b164793c69ce83bed43f
|
||||
@@ -532,7 +532,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 4, y: 7899}
|
||||
uvTransform: {x: 1364, y: 5188}
|
||||
spritePosition: {x: 1105, y: 412}
|
||||
- name: "\u601D\u7EF4\u6A21\u5757"
|
||||
originalName:
|
||||
@@ -541,8 +541,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
y: 7670
|
||||
x: 1792
|
||||
y: 5818
|
||||
width: 316
|
||||
height: 221
|
||||
spriteID: c958339204034e94993b425f8e985352
|
||||
@@ -553,7 +553,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 4, y: 7670}
|
||||
uvTransform: {x: 1792, y: 5818}
|
||||
spritePosition: {x: 1497, y: 1416}
|
||||
- name: "\u60C5\u7EEA\u6A21\u5757 "
|
||||
originalName:
|
||||
@@ -562,8 +562,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
y: 7382
|
||||
x: 1858
|
||||
y: 4340
|
||||
width: 290
|
||||
height: 280
|
||||
spriteID: cd023d13e1444754098eaa4c15a5e9f0
|
||||
@@ -574,7 +574,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 4, y: 7382}
|
||||
uvTransform: {x: 1858, y: 4340}
|
||||
spritePosition: {x: 670, y: 1381}
|
||||
- name: "\u8BB0\u5FC6\u6A21\u5757"
|
||||
originalName:
|
||||
@@ -583,8 +583,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
y: 7108
|
||||
x: 1732
|
||||
y: 4754
|
||||
width: 402
|
||||
height: 266
|
||||
spriteID: ea727aea94d983d4d984c7c066692c09
|
||||
@@ -595,7 +595,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 4, y: 7108}
|
||||
uvTransform: {x: 1732, y: 4754}
|
||||
spritePosition: {x: 964, y: 1504}
|
||||
- name: "\u82F1\u91CC \u5DE6\u89C6\u89C9\u6A21\u5757\u57FA\u5EA7"
|
||||
originalName:
|
||||
@@ -604,7 +604,7 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
x: 1296
|
||||
y: 5818
|
||||
width: 488
|
||||
height: 434
|
||||
@@ -616,6 +616,27 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 1296, y: 5818}
|
||||
spritePosition: {x: 576, y: 963}
|
||||
- name: "\u89C6\u89C9\u6A21\u5757\u57FA\u5EA7"
|
||||
originalName:
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
alignment: 0
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
y: 5818
|
||||
width: 1284
|
||||
height: 434
|
||||
spriteID: d0db0450cb597b1448f8ddba68c69714
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 4, y: 5818}
|
||||
spritePosition: {x: 576, y: 963}
|
||||
- name: "\u82F1\u91CC\u53F3\u89C6\u89C9\u6A21\u5757\u57FA\u5EA7"
|
||||
@@ -625,8 +646,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
y: 6260
|
||||
x: 1364
|
||||
y: 4340
|
||||
width: 486
|
||||
height: 406
|
||||
spriteID: 30a8ad3fffe366549ab70802705a418d
|
||||
@@ -637,7 +658,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 4, y: 6260}
|
||||
uvTransform: {x: 1364, y: 4340}
|
||||
spritePosition: {x: 1374, y: 991}
|
||||
- name: "\u82F1\u91CC\u4E2D\u95F4\u6A21\u5757\u57FA\u5EA7"
|
||||
originalName:
|
||||
@@ -646,8 +667,8 @@ ScriptedImporter:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
y: 6674
|
||||
x: 1364
|
||||
y: 4754
|
||||
width: 360
|
||||
height: 426
|
||||
spriteID: 190f2eb16fb613f45a88e7cefe3d7789
|
||||
@@ -658,7 +679,7 @@ ScriptedImporter:
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 4, y: 6674}
|
||||
uvTransform: {x: 1364, y: 4754}
|
||||
spritePosition: {x: 1038, y: 996}
|
||||
- name: "\u82F1\u91CC\u5185\u90E8\u6784\u9020"
|
||||
originalName:
|
||||
@@ -1592,7 +1613,7 @@ ScriptedImporter:
|
||||
spriteCategoryList:
|
||||
categories: []
|
||||
spritePackingTag:
|
||||
resliceFromLayer: 0
|
||||
resliceFromLayer: 1
|
||||
mosaicPSDLayers:
|
||||
- name: "\u82F1\u91CC\u6A21\u5757\u540D\u79F0"
|
||||
spriteName:
|
||||
@@ -1603,7 +1624,7 @@ ScriptedImporter:
|
||||
mosaicPosition: {x: 0, y: 0}
|
||||
flatten: 0
|
||||
isImported: 0
|
||||
isVisible: 1
|
||||
isVisible: 0
|
||||
- name: EXPRESION
|
||||
spriteName: EXPRESION
|
||||
isGroup: 0
|
||||
@@ -1612,7 +1633,7 @@ ScriptedImporter:
|
||||
layerID: 197
|
||||
mosaicPosition: {x: 240, y: 7932}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isImported: 0
|
||||
isVisible: 1
|
||||
- name: 'LOGIC '
|
||||
spriteName: 'LOGIC '
|
||||
@@ -1622,7 +1643,7 @@ ScriptedImporter:
|
||||
layerID: 196
|
||||
mosaicPosition: {x: 302, y: 7448}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isImported: 0
|
||||
isVisible: 1
|
||||
- name: 'EMOT '
|
||||
spriteName: 'EMOT '
|
||||
@@ -1632,7 +1653,7 @@ ScriptedImporter:
|
||||
layerID: 195
|
||||
mosaicPosition: {x: 302, y: 7563}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isImported: 0
|
||||
isVisible: 1
|
||||
- name: MEMORY
|
||||
spriteName: MEMORY
|
||||
@@ -1642,7 +1663,7 @@ ScriptedImporter:
|
||||
layerID: 194
|
||||
mosaicPosition: {x: 302, y: 7382}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isImported: 0
|
||||
isVisible: 1
|
||||
- name: 'VISION '
|
||||
spriteName: 'VISION '
|
||||
@@ -1652,7 +1673,7 @@ ScriptedImporter:
|
||||
layerID: 192
|
||||
mosaicPosition: {x: 302, y: 7415}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isImported: 0
|
||||
isVisible: 1
|
||||
- name: EXTENSION
|
||||
spriteName: EXTENSION
|
||||
@@ -1662,7 +1683,7 @@ ScriptedImporter:
|
||||
layerID: 191
|
||||
mosaicPosition: {x: 240, y: 7899}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isImported: 0
|
||||
isVisible: 1
|
||||
- name: "\u82F1\u91CC\u63D2\u5B54"
|
||||
spriteName:
|
||||
@@ -1690,7 +1711,7 @@ ScriptedImporter:
|
||||
parentIndex: 8
|
||||
spriteID: 8ee1829f145adac4cada54af0898e927
|
||||
layerID: 77
|
||||
mosaicPosition: {x: 442, y: 7670}
|
||||
mosaicPosition: {x: 2020, y: 6138}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1700,7 +1721,7 @@ ScriptedImporter:
|
||||
parentIndex: 8
|
||||
spriteID: 47f41d9c8ff3fe74b85fc28bbcb73708
|
||||
layerID: 76
|
||||
mosaicPosition: {x: 338, y: 7965}
|
||||
mosaicPosition: {x: 1421, y: 5519}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1720,7 +1741,7 @@ ScriptedImporter:
|
||||
parentIndex: 11
|
||||
spriteID: 880150e9e43b11e4e80eb0f0e31d2d7b
|
||||
layerID: 72
|
||||
mosaicPosition: {x: 328, y: 7670}
|
||||
mosaicPosition: {x: 1792, y: 6138}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1730,7 +1751,7 @@ ScriptedImporter:
|
||||
parentIndex: 11
|
||||
spriteID: 2ac67bad364284f40882e9f8f7317c31
|
||||
layerID: 71
|
||||
mosaicPosition: {x: 414, y: 7197}
|
||||
mosaicPosition: {x: 1364, y: 5518}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1750,7 +1771,7 @@ ScriptedImporter:
|
||||
parentIndex: 14
|
||||
spriteID: a48543e6cca7c324888144d2dcf84484
|
||||
layerID: 67
|
||||
mosaicPosition: {x: 328, y: 7760}
|
||||
mosaicPosition: {x: 1849, y: 6138}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1760,7 +1781,7 @@ ScriptedImporter:
|
||||
parentIndex: 14
|
||||
spriteID: aabe36443d7d4364491cc2fe72f7ece9
|
||||
layerID: 66
|
||||
mosaicPosition: {x: 414, y: 7287}
|
||||
mosaicPosition: {x: 1364, y: 5608}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1780,7 +1801,7 @@ ScriptedImporter:
|
||||
parentIndex: 17
|
||||
spriteID: 085c33f36bebaa741be012c596e618fa
|
||||
layerID: 62
|
||||
mosaicPosition: {x: 442, y: 7759}
|
||||
mosaicPosition: {x: 2077, y: 6138}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1790,7 +1811,7 @@ ScriptedImporter:
|
||||
parentIndex: 17
|
||||
spriteID: 42f26d908c37d454b9e983b63ef74953
|
||||
layerID: 61
|
||||
mosaicPosition: {x: 387, y: 7965}
|
||||
mosaicPosition: {x: 1421, y: 5608}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1810,7 +1831,7 @@ ScriptedImporter:
|
||||
parentIndex: 20
|
||||
spriteID: 6bf14ad1201e0a444b4335a3e586b778
|
||||
layerID: 57
|
||||
mosaicPosition: {x: 385, y: 7670}
|
||||
mosaicPosition: {x: 1906, y: 6138}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1820,7 +1841,7 @@ ScriptedImporter:
|
||||
parentIndex: 20
|
||||
spriteID: a81772844f9f7d7458a487ce9aac3bc5
|
||||
layerID: 56
|
||||
mosaicPosition: {x: 240, y: 7965}
|
||||
mosaicPosition: {x: 1364, y: 5698}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1840,7 +1861,7 @@ ScriptedImporter:
|
||||
parentIndex: 23
|
||||
spriteID: 391befd4d6c68fa4c8137aea4fc0906a
|
||||
layerID: 52
|
||||
mosaicPosition: {x: 414, y: 7108}
|
||||
mosaicPosition: {x: 1364, y: 5429}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1850,7 +1871,7 @@ ScriptedImporter:
|
||||
parentIndex: 23
|
||||
spriteID: 66812d7769a083f4d969c545d4741b76
|
||||
layerID: 51
|
||||
mosaicPosition: {x: 436, y: 7965}
|
||||
mosaicPosition: {x: 1421, y: 5697}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1870,7 +1891,7 @@ ScriptedImporter:
|
||||
parentIndex: 26
|
||||
spriteID: fc8b43481499fbb42bdbc7fe3da8860d
|
||||
layerID: 47
|
||||
mosaicPosition: {x: 385, y: 7760}
|
||||
mosaicPosition: {x: 1963, y: 6138}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1880,7 +1901,77 @@ ScriptedImporter:
|
||||
parentIndex: 26
|
||||
spriteID: 6ec3d202dbc4b924d979298a5d9a9162
|
||||
layerID: 46
|
||||
mosaicPosition: {x: 289, y: 7965}
|
||||
mosaicPosition: {x: 1421, y: 5429}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u5C4F\u5E55\u80CC\u666F"
|
||||
spriteName:
|
||||
isGroup: 1
|
||||
parentIndex: -1
|
||||
spriteID: 6c684c46f61cf6a4e9fe178aefb36f91
|
||||
layerID: 220
|
||||
mosaicPosition: {x: 0, y: 0}
|
||||
flatten: 0
|
||||
isImported: 0
|
||||
isVisible: 1
|
||||
- name: "\u8868\u8FBE\u80CC\u666F"
|
||||
spriteName: "\u8868\u8FBE\u80CC\u666F"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
spriteID: f83ccab486a753044aaea7ced26c7e5c
|
||||
layerID: 219
|
||||
mosaicPosition: {x: 1858, y: 4680}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u8BB0\u5FC6\u80CC\u666F"
|
||||
spriteName: "\u8BB0\u5FC6\u80CC\u666F"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
spriteID: f2e87c161ca7592448ca53b02b4f34b4
|
||||
layerID: 222
|
||||
mosaicPosition: {x: 1929, y: 6047}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u601D\u7EF4\u80CC\u666F"
|
||||
spriteName: "\u601D\u7EF4\u80CC\u666F"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
spriteID: 1dd2f0bb806a9d147b547afdda2b28eb
|
||||
layerID: 223
|
||||
mosaicPosition: {x: 1792, y: 6100}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u89C6\u89C9\u80CC\u666F"
|
||||
spriteName: "\u89C6\u89C9\u80CC\u666F"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
spriteID: 10241bb3ac5f4b94cbe4ee6ee47efb8f
|
||||
layerID: 224
|
||||
mosaicPosition: {x: 1792, y: 6047}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u60C5\u7EEA\u80CC\u666F"
|
||||
spriteName: "\u60C5\u7EEA\u80CC\u666F"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
spriteID: 5f163d43ad7427943b115f60eea853b3
|
||||
layerID: 225
|
||||
mosaicPosition: {x: 1936, y: 6100}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u62D3\u5C55\u80CC\u666F"
|
||||
spriteName: "\u62D3\u5C55\u80CC\u666F"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
spriteID: 279ac1e75adc0e04191fcebfbfae499b
|
||||
layerID: 226
|
||||
mosaicPosition: {x: 1858, y: 4628}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
@@ -1897,49 +1988,59 @@ ScriptedImporter:
|
||||
- name: "\u82F1\u91CC\u8BB2\u8BDD\u6A21\u5757"
|
||||
spriteName: "\u82F1\u91CC\u8BB2\u8BDD\u6A21\u5757"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
parentIndex: 36
|
||||
spriteID: 77c7308e7564b164793c69ce83bed43f
|
||||
layerID: 39
|
||||
mosaicPosition: {x: 4, y: 7899}
|
||||
mosaicPosition: {x: 1364, y: 5188}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u601D\u7EF4\u6A21\u5757"
|
||||
spriteName: "\u601D\u7EF4\u6A21\u5757"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
parentIndex: 36
|
||||
spriteID: c958339204034e94993b425f8e985352
|
||||
layerID: 141
|
||||
mosaicPosition: {x: 4, y: 7670}
|
||||
mosaicPosition: {x: 1792, y: 5818}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u60C5\u7EEA\u6A21\u5757 "
|
||||
spriteName: "\u60C5\u7EEA\u6A21\u5757 "
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
parentIndex: 36
|
||||
spriteID: cd023d13e1444754098eaa4c15a5e9f0
|
||||
layerID: 140
|
||||
mosaicPosition: {x: 4, y: 7382}
|
||||
mosaicPosition: {x: 1858, y: 4340}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u8BB0\u5FC6\u6A21\u5757"
|
||||
spriteName: "\u8BB0\u5FC6\u6A21\u5757"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
parentIndex: 36
|
||||
spriteID: ea727aea94d983d4d984c7c066692c09
|
||||
layerID: 139
|
||||
mosaicPosition: {x: 4, y: 7108}
|
||||
mosaicPosition: {x: 1732, y: 4754}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u82F1\u91CC \u5DE6\u89C6\u89C9\u6A21\u5757\u57FA\u5EA7"
|
||||
spriteName: "\u82F1\u91CC \u5DE6\u89C6\u89C9\u6A21\u5757\u57FA\u5EA7"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
parentIndex: 36
|
||||
spriteID: c88832e692a3cad499f6ac0e2c10e4a4
|
||||
layerID: 18
|
||||
mosaicPosition: {x: 1296, y: 5818}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u89C6\u89C9\u6A21\u5757\u57FA\u5EA7"
|
||||
spriteName: "\u89C6\u89C9\u6A21\u5757\u57FA\u5EA7"
|
||||
isGroup: 0
|
||||
parentIndex: 36
|
||||
spriteID: d0db0450cb597b1448f8ddba68c69714
|
||||
layerID: 228
|
||||
mosaicPosition: {x: 4, y: 5818}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
@@ -1947,20 +2048,20 @@ ScriptedImporter:
|
||||
- name: "\u82F1\u91CC\u53F3\u89C6\u89C9\u6A21\u5757\u57FA\u5EA7"
|
||||
spriteName: "\u82F1\u91CC\u53F3\u89C6\u89C9\u6A21\u5757\u57FA\u5EA7"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
parentIndex: 36
|
||||
spriteID: 30a8ad3fffe366549ab70802705a418d
|
||||
layerID: 14
|
||||
mosaicPosition: {x: 4, y: 6260}
|
||||
mosaicPosition: {x: 1364, y: 4340}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u82F1\u91CC\u4E2D\u95F4\u6A21\u5757\u57FA\u5EA7"
|
||||
spriteName: "\u82F1\u91CC\u4E2D\u95F4\u6A21\u5757\u57FA\u5EA7"
|
||||
isGroup: 0
|
||||
parentIndex: 29
|
||||
parentIndex: 36
|
||||
spriteID: 190f2eb16fb613f45a88e7cefe3d7789
|
||||
layerID: 10
|
||||
mosaicPosition: {x: 4, y: 6674}
|
||||
mosaicPosition: {x: 1364, y: 4754}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
|
||||
+3384
-3451
File diff suppressed because it is too large
Load Diff
@@ -12,20 +12,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 75a50c7f91b54e07857c2b21e2e843c9, type: 3}
|
||||
m_Name: LevelTest
|
||||
m_EditorClassIdentifier:
|
||||
nodes:
|
||||
- command: 0
|
||||
moduleName: Memory
|
||||
flickerTime: 3
|
||||
lightOnTime: 5
|
||||
- command: 0
|
||||
moduleName: Eye
|
||||
flickerTime: 3
|
||||
lightOnTime: 5
|
||||
- command: 0
|
||||
moduleName: Logic
|
||||
flickerTime: 3
|
||||
lightOnTime: 5
|
||||
- command: 0
|
||||
moduleName: Speak
|
||||
flickerTime: 3
|
||||
lightOnTime: 5
|
||||
moleExistTime: 2.5
|
||||
flickerFreq: 5
|
||||
batchDuration: {x: 1, y: 2}
|
||||
totalBatchNum: 5
|
||||
batchGap: 1.5
|
||||
batches:
|
||||
- moleNum: 2
|
||||
durationRange: {x: 5, y: 8}
|
||||
- moleNum: 3
|
||||
durationRange: {x: 5, y: 8}
|
||||
- moleNum: 2
|
||||
durationRange: {x: 5, y: 8}
|
||||
- moleNum: 2
|
||||
durationRange: {x: 5, y: 8}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4d0ebc436e03019448bb94173f1ebc8e
|
||||
guid: 8660e6d22f000af47bb8ea1370343982
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
|
||||
@@ -3,7 +3,6 @@ using UnityEngine.Localization.Settings;
|
||||
using Yarn.Unity;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.Utility;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
|
||||
@@ -1,24 +1,40 @@
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using AibisDream.Kit;
|
||||
using DG.Tweening;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public class MoleModule : BodyModule
|
||||
{
|
||||
private static WhackMoleSystem WhackMoleSystem => FixSystemCenter.SystemDic.Get<WhackMoleSystem>();
|
||||
#region 效果组件
|
||||
|
||||
private Material _picMaterial;
|
||||
|
||||
private TMP_Text _screenText;
|
||||
private SpriteRenderer _processBar;
|
||||
|
||||
#endregion
|
||||
|
||||
public bool isInMoleGame;
|
||||
public bool isLightOn;
|
||||
private static readonly int SineGlowFade = Shader.PropertyToID("_SineGlowFade");
|
||||
private static readonly int AddColorFade = Shader.PropertyToID("_AddColorFade");
|
||||
private static readonly int AddColorColor = Shader.PropertyToID("_AddColorColor");
|
||||
|
||||
private float _countDownPct;
|
||||
private Tween _countDownTween;
|
||||
|
||||
public event Action<MoleModule, bool> OnLightMoleEnd;
|
||||
|
||||
protected override void InitReference()
|
||||
{
|
||||
base.InitReference();
|
||||
_picMaterial = transform.Find("Module Pic").GetComponent<SpriteRenderer>().material;
|
||||
_screenText = transform.Find("Screen Text").GetComponent<TMP_Text>();
|
||||
_processBar = transform.Find("Process Bar").GetComponent<SpriteRenderer>();
|
||||
}
|
||||
|
||||
|
||||
// 重写PlugIn和PlugOut就好了
|
||||
public override void PlugIn()
|
||||
{
|
||||
@@ -26,13 +42,13 @@ namespace AibisDream.FixSystem
|
||||
{
|
||||
base.PlugIn();
|
||||
}
|
||||
else
|
||||
else if (isLightOn)
|
||||
{
|
||||
// 触发WhackMoleSystem的插入事件
|
||||
WhackMoleSystem.OnPlugIn(data.moduleName);
|
||||
// 打中了
|
||||
HitMole();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public override void PlugOut()
|
||||
{
|
||||
// TODO 拔出来会有效果吗?存疑
|
||||
@@ -42,23 +58,78 @@ namespace AibisDream.FixSystem
|
||||
|
||||
public void StartFlicker()
|
||||
{
|
||||
_screenText.text = "Checking...";
|
||||
_picMaterial.SetFloat(SineGlowFade, 1);
|
||||
}
|
||||
|
||||
|
||||
public void StopFlicker()
|
||||
{
|
||||
_picMaterial.SetFloat(SineGlowFade, 0);
|
||||
}
|
||||
|
||||
public void LightOn(Color color)
|
||||
public void LightOn(float lightTime)
|
||||
{
|
||||
_picMaterial.SetColor(AddColorColor, color);
|
||||
// 视觉部分
|
||||
StartFlicker();
|
||||
_picMaterial.SetColor(AddColorColor, Color.red);
|
||||
_picMaterial.SetFloat(AddColorFade, 1);
|
||||
_processBar.color = Color.red;
|
||||
_processBar.transform.localScale = Vector3.one;
|
||||
|
||||
// 逻辑部分
|
||||
isLightOn = true;
|
||||
_countDownPct = 100;
|
||||
_countDownTween = DOTween.To(() => _countDownPct, value => _countDownPct = value, 0, lightTime)
|
||||
.OnUpdate(CountingDown)
|
||||
.OnComplete(OverTime);
|
||||
}
|
||||
|
||||
public void LightOff()
|
||||
private void CountingDown()
|
||||
{
|
||||
// TODO 显示倒计时
|
||||
_screenText.text = $"{_countDownPct:F1}%";
|
||||
_processBar.transform.localScale = new Vector3(_countDownPct / 100, 1, 1);
|
||||
}
|
||||
|
||||
private void OverTime()
|
||||
{
|
||||
// TODO 超时
|
||||
isLightOn = false;
|
||||
LightOff();
|
||||
OnLightMoleEnd?.Invoke(this, false);
|
||||
OnLightMoleEnd = null;
|
||||
_countDownTween = null;
|
||||
}
|
||||
|
||||
private void LightOff()
|
||||
{
|
||||
_picMaterial.SetFloat(AddColorFade, 0);
|
||||
_processBar.color = Color.clear;
|
||||
// TODO 继续闪烁
|
||||
StartFlicker();
|
||||
}
|
||||
|
||||
private void HitMole()
|
||||
{
|
||||
_countDownTween.Kill();
|
||||
isLightOn = false;
|
||||
// 命中后成功反馈
|
||||
ActionKit.Sequence()
|
||||
.Callback(() =>
|
||||
{
|
||||
if (ColorUtility.TryParseHtmlString("#67C23A", out var color))
|
||||
{
|
||||
_picMaterial.SetColor(AddColorColor, color);
|
||||
}
|
||||
})
|
||||
.Callback(() => _processBar.color = Color.green)
|
||||
.Callback(() => _screenText.text = "Success")
|
||||
.Delay(0.7f)
|
||||
.Callback(LightOff)
|
||||
.Start(this);
|
||||
|
||||
OnLightMoleEnd?.Invoke(this, true);
|
||||
OnLightMoleEnd = null;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -6,23 +6,26 @@ namespace AibisDream.FixSystem
|
||||
[CreateAssetMenu(fileName = "WhackMoldData", menuName = "Level Data/WhackMoldData")]
|
||||
public class WhackMoleData : ScriptableObject
|
||||
{
|
||||
public WhackMoleNode[] nodes;
|
||||
[Header("基本参数")]
|
||||
public float moleExistTime = 1f;
|
||||
public int flickerFreq = 10;
|
||||
public Vector2 batchDuration = new(2, 3);
|
||||
public int totalBatchNum = 5;
|
||||
public float batchGap = 1f;
|
||||
|
||||
[Header("批次序列")]
|
||||
public WhackMoleBatch[] batches;
|
||||
|
||||
public WhackMoleBatch GetBatch(int index)
|
||||
{
|
||||
return index >= batches.Length ? batches[^1] : batches[index];
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public struct WhackMoleNode
|
||||
public struct WhackMoleBatch
|
||||
{
|
||||
public WhackMoleCommand command;
|
||||
public string moduleName;
|
||||
public float flickerTime;
|
||||
public float lightOnTime;
|
||||
}
|
||||
|
||||
public enum WhackMoleCommand
|
||||
{
|
||||
SingleModuleLightOn,
|
||||
MultipleModuleLightOn,
|
||||
SingleModuleColorOn,
|
||||
MultipleModuleColorOn
|
||||
public int moleNum;
|
||||
public Vector2 durationRange;
|
||||
}
|
||||
}
|
||||
@@ -1,269 +1,166 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.Kit;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public class WhackMoleHandler
|
||||
{
|
||||
private readonly MonoBehaviour _mono;
|
||||
private AbsWhackMoleNodeHandler _nodeHandler;
|
||||
private static readonly WhackMoleSystem WhackMoleSystem = FixSystemCenter.SystemDic.Get<WhackMoleSystem>();
|
||||
|
||||
public event Action<bool> OnGameEnd;
|
||||
private readonly WhackMoleData _data;
|
||||
|
||||
private WhackMoleHandler(MonoBehaviour mono)
|
||||
#region 功能参数
|
||||
|
||||
private int _batchIdx;
|
||||
private readonly Dictionary<string, MoleModule> _moleModules;
|
||||
private readonly List<WhackMoleBatchHandler> _batchHandlers;
|
||||
|
||||
private WhackMoleRes _res;
|
||||
public event Action<WhackMoleRes> OnGameEnd;
|
||||
|
||||
#endregion
|
||||
|
||||
public WhackMoleHandler(WhackMoleData data)
|
||||
{
|
||||
_mono = mono;
|
||||
_data = data;
|
||||
_batchIdx = 0;
|
||||
_moleModules = WhackMoleSystem.MoleModules;
|
||||
// 生成batch序列并链接
|
||||
_batchHandlers = CreateBatchHandler(data);
|
||||
// 统计一些基本数据
|
||||
CalcBaseData();
|
||||
}
|
||||
|
||||
public void OnPlugIn(string moduleName)
|
||||
private void CalcBaseData()
|
||||
{
|
||||
_nodeHandler.OnPlugIn(moduleName);
|
||||
}
|
||||
|
||||
public void OnPlugOut(string moduleName)
|
||||
{
|
||||
_nodeHandler.OnPlugOut(moduleName);
|
||||
}
|
||||
|
||||
public void StartGame()
|
||||
{
|
||||
Handle();
|
||||
}
|
||||
|
||||
private void Handle()
|
||||
{
|
||||
_nodeHandler.onHandleEnd.AddListener(OnHandleEnd);
|
||||
_mono.StartCoroutine(_nodeHandler.Handle());
|
||||
}
|
||||
|
||||
private void OnHandleEnd(bool isSuccess)
|
||||
{
|
||||
if (isSuccess)
|
||||
_res.totalMoleBatch = _data.totalBatchNum;
|
||||
for (int i = 0; i < _data.totalBatchNum; i++)
|
||||
{
|
||||
// TODO 进入下一关
|
||||
_nodeHandler.onHandleEnd.RemoveAllListeners();
|
||||
if (_nodeHandler.nextHandler != null)
|
||||
{
|
||||
_nodeHandler = _nodeHandler.nextHandler;
|
||||
Handle();
|
||||
}
|
||||
else
|
||||
{
|
||||
OnGameEnd?.Invoke(true);
|
||||
OnGameEnd = null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO 进入失败结局
|
||||
OnGameEnd?.Invoke(false);
|
||||
OnGameEnd = null;
|
||||
_res.totalMoleNum += _data.GetBatch(i).moleNum;
|
||||
}
|
||||
}
|
||||
|
||||
public static WhackMoleHandler Create(WhackMoleData data, MonoBehaviour mono)
|
||||
public void Start()
|
||||
{
|
||||
var res = new WhackMoleHandler(mono);
|
||||
AbsWhackMoleNodeHandler lastHandler = null;
|
||||
foreach (var node in data.nodes)
|
||||
foreach (var mole in _moleModules.Values)
|
||||
{
|
||||
var handler = res.CreateNodeHandler(node);
|
||||
res._nodeHandler ??= handler;
|
||||
if (lastHandler != null)
|
||||
{
|
||||
lastHandler.nextHandler = handler;
|
||||
}
|
||||
mole.isInMoleGame = true;
|
||||
}
|
||||
WhackMoleSystem.StartAllFlicker();
|
||||
ActionKit.Coroutine(_batchHandlers[_batchIdx].StartBatch).StartGlobal();
|
||||
}
|
||||
|
||||
lastHandler = handler;
|
||||
private List<WhackMoleBatchHandler> CreateBatchHandler(WhackMoleData data)
|
||||
{
|
||||
List<WhackMoleBatchHandler> res = new();
|
||||
for (int i = 0; i < data.totalBatchNum; i++)
|
||||
{
|
||||
var curHandler = new WhackMoleBatchHandler(_moleModules.Values, data, i);
|
||||
curHandler.OnBatchEnd += OnBatchEnd;
|
||||
res.Add(curHandler);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
private AbsWhackMoleNodeHandler CreateNodeHandler(WhackMoleNode node)
|
||||
private void OnBatchEnd(int hitMoleNum)
|
||||
{
|
||||
AbsWhackMoleNodeHandler handler = node.command switch
|
||||
_batchIdx++;
|
||||
_res.hitMoleNum += hitMoleNum;
|
||||
_res.passBatchNum++;
|
||||
if (_batchIdx >= _data.totalBatchNum)
|
||||
{
|
||||
WhackMoleCommand.SingleModuleLightOn => new SingleModuleLightOnHandler(),
|
||||
WhackMoleCommand.MultipleModuleLightOn => new MultipleModuleLightOnHandler(),
|
||||
WhackMoleCommand.SingleModuleColorOn => new SingleModuleColorOnHandler(),
|
||||
WhackMoleCommand.MultipleModuleColorOn => new MultipleModuleColorOnHandler(),
|
||||
_ => throw new ArgumentOutOfRangeException()
|
||||
};
|
||||
handler.Init(node);
|
||||
return handler;
|
||||
WhackMoleSystem.StopAllFlicker();
|
||||
OnGameEnd?.Invoke(_res);
|
||||
return;
|
||||
}
|
||||
// 继续下一个批次,如果有中间状态就在这里处理
|
||||
ActionKit.Sequence().Delay(_data.batchGap).Coroutine(_batchHandlers[_batchIdx].StartBatch).StartGlobal();
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class AbsWhackMoleNodeHandler
|
||||
public class WhackMoleBatchHandler
|
||||
{
|
||||
protected static WhackMoleSystem WhackMoleSystem => FixSystemCenter.SystemDic.Get<WhackMoleSystem>();
|
||||
private readonly WhackMoleData _globalData;
|
||||
|
||||
protected WhackMoleNode node;
|
||||
public AbsWhackMoleNodeHandler nextHandler;
|
||||
private readonly ISelector<MoleModule> _moleSelector;
|
||||
private readonly List<float> _lightGaps = new();
|
||||
private readonly List<MoleModule> _lightingMoles = new();
|
||||
|
||||
public readonly UnityEvent<bool> onHandleEnd = new();
|
||||
private bool _isBatchEnd;
|
||||
private int _hitMoleNum;
|
||||
|
||||
public void Init(WhackMoleNode nodeData)
|
||||
public event Action<int> OnBatchEnd;
|
||||
|
||||
public WhackMoleBatchHandler(IEnumerable<MoleModule> molesModules, WhackMoleData data, int index)
|
||||
{
|
||||
node = nodeData;
|
||||
}
|
||||
|
||||
public IEnumerator Handle()
|
||||
{
|
||||
EnumEventSystem.Global.Send(WhackMoleState.BeforePlug);
|
||||
yield return BeforePlug();
|
||||
EnumEventSystem.Global.Send(WhackMoleState.WaitPlug, node.lightOnTime);
|
||||
yield return WaitPlug();
|
||||
EnumEventSystem.Global.Send(WhackMoleState.AfterPlug);
|
||||
yield return AfterPlug();
|
||||
}
|
||||
|
||||
protected virtual IEnumerator BeforePlug()
|
||||
{
|
||||
WhackMoleSystem.StartAllFlicker();
|
||||
yield return new WaitForSeconds(node.flickerTime);
|
||||
WhackMoleSystem.StopAllFlicker();
|
||||
}
|
||||
|
||||
protected abstract IEnumerator WaitPlug();
|
||||
|
||||
protected abstract IEnumerator AfterPlug();
|
||||
|
||||
public abstract void OnPlugIn(string moduleName);
|
||||
public abstract void OnPlugOut(string moduleName);
|
||||
}
|
||||
|
||||
public class SingleModuleLightOnHandler : AbsWhackMoleNodeHandler
|
||||
{
|
||||
private bool _isPlugIn;
|
||||
|
||||
protected override IEnumerator WaitPlug()
|
||||
{
|
||||
Debug.Log("进入等待");
|
||||
// 先等待
|
||||
yield return new WaitForSeconds(1f);
|
||||
_isPlugIn = false;
|
||||
|
||||
WhackMoleSystem.LightOnModule(node.moduleName);
|
||||
// 进入循环等待插入事件,规定时间内未插入则进入失败结局
|
||||
var waitTime = 0f;
|
||||
while (!_isPlugIn && waitTime < node.lightOnTime)
|
||||
_globalData = data;
|
||||
var batchData = data.GetBatch(index);
|
||||
// 创建选择器
|
||||
_moleSelector = new LimitedSelector<MoleModule>(molesModules);
|
||||
// 设置亮起时间间隔
|
||||
for (var i = 0; i < batchData.moleNum; i++)
|
||||
{
|
||||
waitTime += Time.deltaTime;
|
||||
var gap = Random.Range(batchData.durationRange.x, batchData.durationRange.y);
|
||||
_lightGaps.Add(gap);
|
||||
}
|
||||
|
||||
_lightGaps.Sort();
|
||||
}
|
||||
|
||||
public IEnumerator StartBatch()
|
||||
{
|
||||
// 利用协程记时
|
||||
float batchTime = 0f;
|
||||
while (!_isBatchEnd)
|
||||
{
|
||||
OnUpdate(batchTime);
|
||||
batchTime += Time.deltaTime;
|
||||
yield return null;
|
||||
EnumEventSystem.Global.Send(WhackMoleState.WaitPlug, node.lightOnTime - waitTime);
|
||||
}
|
||||
|
||||
OnBatchEnd?.Invoke(_hitMoleNum);
|
||||
OnBatchEnd = null;
|
||||
}
|
||||
|
||||
private void OnUpdate(float batchTime)
|
||||
{
|
||||
// 点亮一些模块,其他的继续闪烁
|
||||
while (_lightGaps.Count > 0 && _lightGaps[0] <= batchTime)
|
||||
{
|
||||
var lightOnMole = _moleSelector.Select();
|
||||
lightOnMole.LightOn(_globalData.moleExistTime);
|
||||
lightOnMole.OnLightMoleEnd += OnLightMoleEnd;
|
||||
// 最后同步其他容器
|
||||
_lightGaps.RemoveAt(0);
|
||||
_lightingMoles.Add(lightOnMole);
|
||||
}
|
||||
}
|
||||
|
||||
protected override IEnumerator AfterPlug()
|
||||
private void OnLightMoleEnd(MoleModule mole, bool isPlugin)
|
||||
{
|
||||
Debug.Log("进入后处理");
|
||||
WhackMoleSystem.LightOffModule(node.moduleName);
|
||||
if (_isPlugIn)
|
||||
// 从亮起列表中移除
|
||||
_lightingMoles.Remove(mole);
|
||||
if (isPlugin) _hitMoleNum++;
|
||||
// 当所有模块都熄灭的时候,游戏结束
|
||||
if (_lightingMoles.Count <= 0 && _lightGaps.Count <= 0)
|
||||
{
|
||||
// TODO 正常插入,触发效果并进入下一个关卡
|
||||
yield return new WaitForSeconds(1);
|
||||
onHandleEnd?.Invoke(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO 超时,触发失败结局
|
||||
onHandleEnd?.Invoke(false);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnPlugIn(string moduleName)
|
||||
{
|
||||
if (moduleName == node.moduleName)
|
||||
{
|
||||
_isPlugIn = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnPlugOut(string moduleName)
|
||||
{
|
||||
if (moduleName == node.moduleName)
|
||||
{
|
||||
_isPlugIn = false;
|
||||
_isBatchEnd = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class MultipleModuleLightOnHandler : AbsWhackMoleNodeHandler
|
||||
public struct WhackMoleRes
|
||||
{
|
||||
protected override IEnumerator WaitPlug()
|
||||
{
|
||||
// 等待插入
|
||||
yield return new WaitUntil(() => false);
|
||||
}
|
||||
|
||||
protected override IEnumerator AfterPlug()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override void OnPlugIn(string moduleName)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnPlugOut(string moduleName)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public class SingleModuleColorOnHandler : AbsWhackMoleNodeHandler
|
||||
{
|
||||
protected override IEnumerator WaitPlug()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override IEnumerator AfterPlug()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override void OnPlugIn(string moduleName)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnPlugOut(string moduleName)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public class MultipleModuleColorOnHandler : AbsWhackMoleNodeHandler
|
||||
{
|
||||
protected override IEnumerator WaitPlug()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override IEnumerator AfterPlug()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override void OnPlugIn(string moduleName)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnPlugOut(string moduleName)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public enum WhackMoleState
|
||||
{
|
||||
BeforePlug,
|
||||
WaitPlug,
|
||||
AfterPlug,
|
||||
public int totalMoleBatch;
|
||||
public int failBatchNum;
|
||||
public int passBatchNum;
|
||||
public int totalMoleNum;
|
||||
public int hitMoleNum;
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d1b796d518a64802a34ce6ad301b3a00
|
||||
timeCreated: 1752129433
|
||||
guid: a845f09d13dd4cb0b5f111d8fa2e40a4
|
||||
timeCreated: 1753442701
|
||||
@@ -1,57 +0,0 @@
|
||||
using System;
|
||||
using AibisDream.Framework;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.FixSystem
|
||||
{
|
||||
public class WhackMoleLog : MonoBehaviour
|
||||
{
|
||||
private TMP_Text _countDownText;
|
||||
private TMP_Text _stateText;
|
||||
private TMP_Text _resText;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_countDownText = transform.Find("倒计时").GetComponent<TMP_Text>();
|
||||
_stateText = transform.Find("当前状态").GetComponent<TMP_Text>();
|
||||
_resText = transform.Find("结果").GetComponent<TMP_Text>();
|
||||
|
||||
EnumEventSystem.Global.Register(WhackMoleState.BeforePlug, OnBeforePlug);
|
||||
EnumEventSystem.Global.Register<WhackMoleState, float>(WhackMoleState.WaitPlug, OnWaitPlug);
|
||||
EnumEventSystem.Global.Register(WhackMoleState.AfterPlug, OnAfterPlug);
|
||||
}
|
||||
|
||||
public void Init()
|
||||
{
|
||||
_countDownText.text = "倒计时:等待";
|
||||
_stateText.text = "当前状态:开始";
|
||||
_resText.text = "结果:等待";
|
||||
}
|
||||
|
||||
private void OnBeforePlug()
|
||||
{
|
||||
_stateText.text = "当前状态:前置效果";
|
||||
_countDownText.text = "倒计时:0";
|
||||
}
|
||||
|
||||
private void OnWaitPlug(float time)
|
||||
{
|
||||
_stateText.text = "当前状态:插线倒计时";
|
||||
_countDownText.text = $"倒计时:{time:F}";
|
||||
}
|
||||
|
||||
private void OnAfterPlug()
|
||||
{
|
||||
_stateText.text = "当前状态:后置效果";
|
||||
_countDownText.text = "倒计时:0";
|
||||
}
|
||||
|
||||
public void OnGameEnd(bool isSuccess)
|
||||
{
|
||||
_stateText.text = "当前状态:游戏结束";
|
||||
_countDownText.text = "倒计时:0";
|
||||
_resText.text = "结果:" + (isSuccess ? "成功" : "失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c60dc35d51a4c349889aa59f70a6442
|
||||
timeCreated: 1753262821
|
||||
@@ -1,6 +1,4 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Framework;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
@@ -11,8 +9,6 @@ namespace AibisDream.FixSystem
|
||||
public class WhackMoleSystem : MonoBehaviour
|
||||
{
|
||||
private BodyModuleSystem _bodyModuleSystem;
|
||||
private WhackMoleHandler _handler;
|
||||
private WhackMoleLog _log;
|
||||
|
||||
private Dictionary<string, MoleModule> _moleModules;
|
||||
|
||||
@@ -20,51 +16,26 @@ namespace AibisDream.FixSystem
|
||||
{
|
||||
_bodyModuleSystem = GetComponent<BodyModuleSystem>();
|
||||
FixSystemCenter.SystemDic.Register(this);
|
||||
_log = GetComponentInChildren<WhackMoleLog>();
|
||||
}
|
||||
|
||||
#region 打地鼠游戏流程控制
|
||||
|
||||
public void StartWhack(WhackMoleData levelData)
|
||||
{
|
||||
_handler = WhackMoleHandler.Create(levelData, this);
|
||||
_handler.OnGameEnd += OnWhackEnd;
|
||||
// 获取当前所有模块
|
||||
_moleModules =
|
||||
_bodyModuleSystem.BodyModules.ToDictionary(item => item.data.moduleName, item => item as MoleModule);
|
||||
_moleModules.Values.ToList().ForEach(item => item.isInMoleGame = true);
|
||||
_log.Init();
|
||||
_handler.StartGame();
|
||||
WhackMoleHandler handler = new WhackMoleHandler(levelData);
|
||||
handler.OnGameEnd += OnGameEnd;
|
||||
handler.Start();
|
||||
}
|
||||
|
||||
private void OnWhackEnd(bool isSuccess)
|
||||
private void OnGameEnd(WhackMoleRes res)
|
||||
{
|
||||
_moleModules.Values.ToList().ForEach(item => item.isInMoleGame = false);
|
||||
// TODO 触发游戏结束
|
||||
_log.OnGameEnd(isSuccess);
|
||||
DialogController.Instance.StartDialogNode(isSuccess ? "打地鼠游戏通过" : "打地鼠游戏失败");
|
||||
Debug.Log($"结果:共计{res.totalMoleNum}个,成功击中{res.hitMoleNum}个");
|
||||
}
|
||||
|
||||
public void OnPlugIn(string moduleName)
|
||||
{
|
||||
_handler?.OnPlugIn(moduleName);
|
||||
}
|
||||
|
||||
public void OnPlugOut(string moduleName)
|
||||
{
|
||||
_handler?.OnPlugOut(moduleName);
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 效果相关, 控制BodyModuleSystem实现
|
||||
|
||||
public IEnumerator RandomFlicker()
|
||||
{
|
||||
|
||||
yield break;
|
||||
}
|
||||
|
||||
public void StartAllFlicker()
|
||||
{
|
||||
foreach (var module in _moleModules.Values)
|
||||
@@ -80,38 +51,34 @@ namespace AibisDream.FixSystem
|
||||
module.StopFlicker();
|
||||
}
|
||||
}
|
||||
|
||||
public void LightOnModule(string moduleName)
|
||||
|
||||
public Dictionary<string, MoleModule> MoleModules
|
||||
{
|
||||
if (_moleModules.TryGetValue(moduleName, out var moleModule))
|
||||
get
|
||||
{
|
||||
moleModule.LightOn(Color.red);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError($"没有找到模块:{moduleName}");
|
||||
}
|
||||
}
|
||||
if (_moleModules == null)
|
||||
{
|
||||
_moleModules = new Dictionary<string, MoleModule>();
|
||||
foreach (var module in _bodyModuleSystem.BodyModules)
|
||||
{
|
||||
if (module is MoleModule moleModule)
|
||||
{
|
||||
_moleModules.Add(moleModule.data.moduleName, moleModule);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void LightOffModule(string moduleName)
|
||||
{
|
||||
if (_moleModules.TryGetValue(moduleName, out var moleModule))
|
||||
{
|
||||
moleModule.LightOff();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError($"没有找到模块:{moduleName}");
|
||||
return _moleModules;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
public static class WholeMoleCommand
|
||||
{
|
||||
private static WhackMoleSystem WhackMoleSystem => FixSystemCenter.SystemDic.Get<WhackMoleSystem>();
|
||||
|
||||
|
||||
[YarnCommand("start_whack_game")]
|
||||
public static void StartWhack(string levelName)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using AibisDream.FixSystem;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.Framework
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.Framework
|
||||
{
|
||||
public class MultipleSelector<T> : IMultipleSelector<T>
|
||||
{
|
||||
private readonly List<T> _items;
|
||||
private int _batchSize;
|
||||
|
||||
public MultipleSelector(IEnumerable<T> items, int batchSize)
|
||||
{
|
||||
_items = new List<T>(items);
|
||||
_batchSize = batchSize;
|
||||
}
|
||||
|
||||
public T[] Select()
|
||||
{
|
||||
int[] indexArray = IMultipleSelector<T>.MultiRange(0, Count - 1, _batchSize);
|
||||
return indexArray.Select(index => _items[index]).ToArray();
|
||||
}
|
||||
|
||||
public void RemoveItem(T item)
|
||||
{
|
||||
_items.Remove(item);
|
||||
}
|
||||
|
||||
public void AddItem(T item)
|
||||
{
|
||||
_items.Add(item);
|
||||
}
|
||||
|
||||
public void SetBatchSize(int batchSize)
|
||||
{
|
||||
_batchSize = batchSize;
|
||||
}
|
||||
|
||||
public int Count => _items.Count;
|
||||
}
|
||||
|
||||
public interface IMultipleSelector<T>
|
||||
{
|
||||
T[] Select();
|
||||
void RemoveItem(T item);
|
||||
void AddItem(T item);
|
||||
int Count { get; }
|
||||
|
||||
static int[] MultiRange(int start, int end, int batchSize)
|
||||
{
|
||||
// 确保要求的数量不超过范围
|
||||
if (batchSize > end - start + 1)
|
||||
{
|
||||
Debug.LogError("要求的数量超过了范围内的数字总数");
|
||||
return default;
|
||||
}
|
||||
|
||||
var uniqueNumbers = new HashSet<int>();
|
||||
|
||||
while (uniqueNumbers.Count < batchSize)
|
||||
{
|
||||
var number = Random.Range(start, end + 1);
|
||||
uniqueNumbers.Add(number);
|
||||
}
|
||||
|
||||
return uniqueNumbers.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6409fbaa417b4c55841a8ca0abe16593
|
||||
timeCreated: 1753859058
|
||||
+101
-15
@@ -4,16 +4,30 @@ using System.Linq;
|
||||
|
||||
namespace AibisDream.Framework
|
||||
{
|
||||
public class RandomSelector<T> : ISelector<T>
|
||||
public class SingleSelector<T> : ISelector<T>
|
||||
{
|
||||
private readonly List<T> _items;
|
||||
private readonly List<int> _prefixSums;
|
||||
private readonly int _totalWeight;
|
||||
private readonly Random _random;
|
||||
|
||||
|
||||
#region 暂时无需实现
|
||||
|
||||
public void AddItem(T item)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void RemoveItem(T item)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public int Count => _items.Count;
|
||||
|
||||
public RandomSelector(IEnumerable<T> items, Func<T, int> weightSelector)
|
||||
|
||||
#endregion
|
||||
|
||||
public SingleSelector(IEnumerable<T> items, Func<T, int> weightSelector)
|
||||
{
|
||||
if (items == null) throw new ArgumentNullException(nameof(items));
|
||||
if (weightSelector == null) throw new ArgumentNullException(nameof(weightSelector));
|
||||
@@ -21,7 +35,7 @@ namespace AibisDream.Framework
|
||||
var itemList = items.ToList();
|
||||
_items = new List<T>(itemList.Count);
|
||||
_prefixSums = new List<int>(itemList.Count);
|
||||
|
||||
|
||||
int sum = 0;
|
||||
foreach (var item in itemList)
|
||||
{
|
||||
@@ -40,7 +54,7 @@ namespace AibisDream.Framework
|
||||
_totalWeight = sum;
|
||||
_random = new Random();
|
||||
}
|
||||
|
||||
|
||||
public T Select()
|
||||
{
|
||||
if (_totalWeight == 0)
|
||||
@@ -79,21 +93,35 @@ namespace AibisDream.Framework
|
||||
private readonly List<int> _batchWeight;
|
||||
private readonly int _totalWeight;
|
||||
private readonly Random _random;
|
||||
|
||||
|
||||
private int _currentWeight;
|
||||
private List<int> _curBatchWeight;
|
||||
|
||||
#region 暂时无需实现
|
||||
|
||||
public void AddItem(T item)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void RemoveItem(T item)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public int Count => _totalWeight;
|
||||
|
||||
|
||||
public BatchSelector(IEnumerable<T> items, Func<T, int> weightSelector)
|
||||
{
|
||||
{
|
||||
if (items == null) throw new ArgumentNullException(nameof(items));
|
||||
if (weightSelector == null) throw new ArgumentNullException(nameof(weightSelector));
|
||||
|
||||
|
||||
var itemList = items.ToList();
|
||||
_items = new List<T>(itemList.Count);
|
||||
_batchWeight = new List<int>(itemList.Count);
|
||||
|
||||
|
||||
int sum = 0;
|
||||
foreach (var item in itemList)
|
||||
{
|
||||
@@ -110,7 +138,7 @@ namespace AibisDream.Framework
|
||||
}
|
||||
|
||||
_curBatchWeight = new List<int>(_batchWeight);
|
||||
|
||||
|
||||
_totalWeight = sum;
|
||||
_currentWeight = sum;
|
||||
_random = new Random();
|
||||
@@ -129,14 +157,14 @@ namespace AibisDream.Framework
|
||||
{
|
||||
ResetSelector();
|
||||
}
|
||||
|
||||
|
||||
int randomValue = _random.Next(0, _currentWeight);
|
||||
int index = BinarySearch(randomValue);
|
||||
|
||||
|
||||
// 选择后减去权重
|
||||
_currentWeight -= 1;
|
||||
_curBatchWeight[index] -= 1;
|
||||
|
||||
|
||||
return _items[index];
|
||||
}
|
||||
|
||||
@@ -162,6 +190,64 @@ namespace AibisDream.Framework
|
||||
}
|
||||
}
|
||||
|
||||
public class LimitedSelector<T> : ISelector<T>
|
||||
{
|
||||
private readonly List<T> _items;
|
||||
private readonly Random _random;
|
||||
|
||||
public LimitedSelector(IEnumerable<T> items)
|
||||
{
|
||||
_items = items.ToList();
|
||||
_random = new Random();
|
||||
}
|
||||
|
||||
public T Select()
|
||||
{
|
||||
if (_items.Count == 0)
|
||||
{
|
||||
throw new InvalidOperationException("Selector is Empty");
|
||||
}
|
||||
|
||||
var res = _items[_random.Next(0, _items.Count)];
|
||||
_items.Remove(res);
|
||||
return res;
|
||||
}
|
||||
|
||||
public int Count => _items.Count;
|
||||
}
|
||||
|
||||
public class UnRepeatSelector<T> : ISelector<T>
|
||||
{
|
||||
private readonly List<T> _items;
|
||||
private readonly Random _random;
|
||||
|
||||
private T _lastCache;
|
||||
|
||||
public int Count => _items.Count;
|
||||
|
||||
public UnRepeatSelector(IEnumerable<T> items)
|
||||
{
|
||||
_items = items.ToList();
|
||||
_random = new Random();
|
||||
}
|
||||
|
||||
public T Select()
|
||||
{
|
||||
if (_items.Count == 0)
|
||||
{
|
||||
throw new InvalidOperationException("Selector is Empty");
|
||||
}
|
||||
|
||||
T res;
|
||||
do
|
||||
{
|
||||
res = _items[_random.Next(0, _items.Count)];
|
||||
} while (Equals(res, _lastCache));
|
||||
_lastCache = res;
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
public interface ISelector<out T>
|
||||
{
|
||||
T Select();
|
||||
@@ -74,7 +74,7 @@ namespace AibisDream
|
||||
|
||||
protected virtual ISelector<MobileObjectData> CreateSelector(IEnumerable<MobileObjectData> datas)
|
||||
{
|
||||
return new RandomSelector<MobileObjectData>(datas, data => data.weight);
|
||||
return new SingleSelector<MobileObjectData>(datas, data => data.weight);
|
||||
}
|
||||
|
||||
private List<MobileObjectData> SetPublicVariable()
|
||||
|
||||
Reference in New Issue
Block a user