百科功能修复

This commit is contained in:
kawagiri 2026-05-03 01:41:06 +08:00
parent f8a167ad3c
commit 4cff001ad8
30 changed files with 1682 additions and 408 deletions

View File

@ -1,5 +1,5 @@
{
"nextId": 74,
"nextId": 75,
"bugs": [
{
"id": 2,
@ -705,11 +705,11 @@
"id": 72,
"title": "0血",
"description": "",
"status": "open",
"status": "fixed",
"priority": "medium",
"module": "",
"createdAt": 1777718940367,
"updatedAt": 1777718940367
"updatedAt": 1777739395268
},
{
"id": 73,
@ -720,6 +720,16 @@
"module": "",
"createdAt": 1777737738169,
"updatedAt": 1777737738169
},
{
"id": 74,
"title": "切语言后netInfo显示错误",
"description": "",
"status": "open",
"priority": "medium",
"module": "",
"createdAt": 1777739391614,
"updatedAt": 1777739391614
}
]
}

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -7591,7 +7591,7 @@ MonoBehaviour:
AttackRange: 1
Cost: 0
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
ProjectileType: 12

View File

@ -515,7 +515,7 @@ MonoBehaviour:
- Type: 1
Name: "\u6587\u5B66\u63CF\u8FF0"
- Type: 2
Name: "\u89E3\u9501\u8981\u6C42"
Name: "\u89E3\u9501\u8981\u6C42\u79D1\u6280"
- Type: 3
Name: "\u63D0\u793A"
- Type: 4
@ -534,3 +534,13 @@ MonoBehaviour:
Name: "\u79D1\u6280\u5B50\u6761\u76EE"
- Type: 11
Name: "\u521D\u59CB\u79D1\u6280\u5B50\u6761\u76EE"
- Type: 12
Name: "\u5C5E\u4E8E\u79D1\u6280"
- Type: 13
Name: "1\u7EA7\u79D1\u6280"
- Type: 14
Name: "2\u7EA7\u79D1\u6280"
- Type: 15
Name: "3\u7EA7\u79D1\u6280"
- Type: 16
Name: "\u62E5\u6709\u8BE5\u79D1\u6280\u7684\u5E1D\u56FD"

View File

@ -3316,72 +3316,6 @@ MonoBehaviour:
NoNeedTech: 0
SpriteSize: {x: 120, y: 120}
SpritePos: {x: 0, y: 20}
- ActionId:
ActionType: 6
WonderType: 0
ResourceType: 0
FeatureType: 0
TerrainType: 0
UnitType: 0
GiantType: 0
UnitLevel: 0
Vegetation: 0
UnitActionType: 8
CityLevelUpActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
PlayerActionType: 0
AIParamType: 0
CultureCardType: 0
ActionName: 914
Desc: 915
NeedTechDesc: 0
TechDesc:
NeedLockDesc: 0
LockDesc:
Icon: {fileID: 21300000, guid: 7f9bbece8534c1748ae0c25bd347f09e, type: 3}
IconViewSizeType: 0
VarientIcon: 0
IconList: []
Cost: 0
CityExp: 0
NoNeedTech: 1
SpriteSize: {x: 0, y: 0}
SpritePos: {x: 0, y: 0}
- ActionId:
ActionType: 6
WonderType: 0
ResourceType: 0
FeatureType: 0
TerrainType: 0
UnitType: 0
GiantType: 0
UnitLevel: 0
Vegetation: 0
UnitActionType: 9
CityLevelUpActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
PlayerActionType: 0
AIParamType: 0
CultureCardType: 0
ActionName: 1479
Desc: 1480
NeedTechDesc: 0
TechDesc:
NeedLockDesc: 0
LockDesc:
Icon: {fileID: 21300000, guid: 7f9bbece8534c1748ae0c25bd347f09e, type: 3}
IconViewSizeType: 0
VarientIcon: 0
IconList: []
Cost: 0
CityExp: 0
NoNeedTech: 1
SpriteSize: {x: 0, y: 0}
SpritePos: {x: 0, y: 0}
- ActionId:
ActionType: 6
WonderType: 0

View File

@ -392409,7 +392409,66 @@ MonoBehaviour:
IsSpecialTerm: 0
Color:
Icon:
- ID: 19535
- ID: 19538
ZH: "\u79D1\u62801"
TDZH:
EN:
JP:
KR:
RU:
ES:
PT:
FR:
Custom:
IsProperNoun: 0
IsDialogue: 0
DialogueSpeaker:
IsDeprecated: 0
IsCustom: 0
IsSpecialTerm: 0
Color:
Icon:
- ID: 19539
ZH: "[Beta 0.7.1d]\n\u53D1\u5E03\u65E5\u671F 26.5.2\n\n------- [\u65B0\u589E\u5185\u5BB9]
-------\n1.\u65B0\u589E\u6E38\u620F\u767E\u79D1\u7CFB\u7EDF(\u521D\u7248!)\uFF0C\u53EF\u5728\u56FE\u9274/\u6559\u7A0B/\u6E38\u620F\u5185\u901A\u8FC7\u767E\u79D1\u5165\u53E3\u6253\u5F00\n2.\u65B0\u589E\u91CD\u590D\u9009\u62E9\u9635\u8425\u529F\u80FD\uFF0C\u73B0\u5728\u8054\u673A\u6A21\u5F0F\u53EF\u9009\u62E9\u76F8\u540C\u7684\u9635\u8425\u5BF9\u6218\n3.\u65B0\u589E4\u9996\u9635\u8425BGM\n4.\u65B0\u589E\u5386\u53F2\u65F6\u523B\u63D2\u56FE\n\n\n-------
[bug\u4FEE\u590D\u4E0E\u4F18\u5316] -------\n1.\u4FEE\u590D\u4E86\u9996\u90FD\u7684\u82F1\u96C4\u63D0\u793A\u5F39\u51FA\u65F6\u673A\u9519\u8BEF\u7684bug\n2.\u4FEE\u590D\u4E86\u53E4\u660E\u5730\u5E1D\u56FD\u5B66\u8005\u5355\u4F4D\u56FE\u50CF\u9519\u8BEF\u7684bug\n3.\u4FEE\u590D\u4E86\u5355\u4F4D\u5C55\u793A\u6240\u5C5E\u57CE\u5E02\u4FE1\u606F\u65F6\u53EF\u80FD\u4FE1\u606F\u51FA\u9519\u7684bug\n4.\u4FEE\u590D\u4E86\u516C\u544A\u680F\u6EDA\u8F6E\u901F\u5EA6\u8FC7\u6162\u7684bug\n\n\u5176\u4ED6bug\u4ECD\u5728\u6301\u7EED\u4FEE\u590D\u4E2D!"
TDZH:
EN:
JP:
KR:
RU:
ES:
PT:
FR:
Custom:
IsProperNoun: 0
IsDialogue: 0
DialogueSpeaker:
IsDeprecated: 0
IsCustom: 0
IsSpecialTerm: 0
Color:
Icon:
- ID: 19540
ZH: "\u5C5E\u4E8E\u79D1\u6280"
TDZH:
EN:
JP:
KR:
RU:
ES:
PT:
FR:
Custom:
IsProperNoun: 0
IsDialogue: 0
DialogueSpeaker:
IsDeprecated: 0
IsCustom: 0
IsSpecialTerm: 0
Color:
Icon:
- ID: 19541
ZH: English
TDZH:
EN:
@ -392428,7 +392487,7 @@ MonoBehaviour:
IsSpecialTerm: 1
Color:
Icon:
- ID: 19536
- ID: 19542
ZH: Chinese
TDZH:
EN:
@ -392447,7 +392506,7 @@ MonoBehaviour:
IsSpecialTerm: 1
Color:
Icon:
- ID: 19537
- ID: 19543
ZH: Heads-up! The current version of the game is in **<Chinese >**only.**< English
>**and more languages are on the way. Thank you for your patience and support!
TDZH:
@ -392467,4 +392526,80 @@ MonoBehaviour:
IsSpecialTerm: 0
Color:
Icon:
- ID: 19544
ZH: "1\u7EA7\u79D1\u6280"
TDZH:
EN:
JP:
KR:
RU:
ES:
PT:
FR:
Custom:
IsProperNoun: 0
IsDialogue: 0
DialogueSpeaker:
IsDeprecated: 0
IsCustom: 0
IsSpecialTerm: 0
Color:
Icon:
- ID: 19545
ZH: "2\u7EA7\u79D1\u6280"
TDZH:
EN:
JP:
KR:
RU:
ES:
PT:
FR:
Custom:
IsProperNoun: 0
IsDialogue: 0
DialogueSpeaker:
IsDeprecated: 0
IsCustom: 0
IsSpecialTerm: 0
Color:
Icon:
- ID: 19546
ZH: "3\u7EA7\u79D1\u6280"
TDZH:
EN:
JP:
KR:
RU:
ES:
PT:
FR:
Custom:
IsProperNoun: 0
IsDialogue: 0
DialogueSpeaker:
IsDeprecated: 0
IsCustom: 0
IsSpecialTerm: 0
Color:
Icon:
- ID: 19547
ZH: "\u62E5\u6709\u8BE5\u79D1\u6280\u7684\u5E1D\u56FD"
TDZH:
EN:
JP:
KR:
RU:
ES:
PT:
FR:
Custom:
IsProperNoun: 0
IsDialogue: 0
DialogueSpeaker:
IsDeprecated: 0
IsCustom: 0
IsSpecialTerm: 0
Color:
Icon:
TargetTypes: 0100000002000000030000000400000005000000060000000700000008000000090000000a000000

View File

@ -385,20 +385,6 @@ MonoBehaviour:
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 18
SkillViewType: 0
SkillName:
SkillDesc:
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 0}
HasShowList: 0
SkillShowList: []
skillPriority: 0
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 19
SkillViewType: 0
SkillName: 2143
@ -489,34 +475,6 @@ MonoBehaviour:
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 30
SkillViewType: 0
SkillName:
SkillDesc:
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 0}
HasShowList: 0
SkillShowList: []
skillPriority: 0
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 31
SkillViewType: 0
SkillName:
SkillDesc:
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 0}
HasShowList: 0
SkillShowList: []
skillPriority: 0
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 32
SkillViewType: 1
SkillName: 16694
@ -531,34 +489,6 @@ MonoBehaviour:
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 33
SkillViewType: 0
SkillName:
SkillDesc:
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 0}
HasShowList: 0
SkillShowList: []
skillPriority: 0
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 34
SkillViewType: 0
SkillName:
SkillDesc:
NotShow: 0
ShowOnUnitMono: 0
SkillIcon: {fileID: 0}
HasShowList: 0
SkillShowList: []
skillPriority: 0
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
ReserveCommonTransform: 0
- SkillType: 35
SkillViewType: 0
SkillName: 2150
@ -2926,7 +2856,7 @@ MonoBehaviour:
SkillIcon: {fileID: 21300000, guid: 210b458d182a54843b24e445faf91332, type: 3}
HasShowList: 0
SkillShowList: []
skillPriority: 0
skillPriority: 1
ReserveOnCarry: 1
ReserveLeaveCarry: 1
ReserveGiantUpgrade: 1
@ -2968,7 +2898,7 @@ MonoBehaviour:
SkillIcon: {fileID: 21300000, guid: ecac2b4066bc1074680f5fc63e3b9366, type: 3}
HasShowList: 0
SkillShowList: []
skillPriority: 0
skillPriority: 1
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0
@ -3344,7 +3274,7 @@ MonoBehaviour:
SkillIcon: {fileID: 21300000, guid: 2afc69cdc28e01a4d97d8770ffc05164, type: 3}
HasShowList: 0
SkillShowList: []
skillPriority: 0
skillPriority: 1
ReserveOnCarry: 0
ReserveLeaveCarry: 0
ReserveGiantUpgrade: 0

View File

@ -3293,7 +3293,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d0000002000000002000000
Skills: 080000002b0000000d00000002000000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3319,7 +3319,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d000000200000008100000002000000
Skills: 080000002b0000000d0000008100000002000000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3345,7 +3345,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d00000020000000810000008400000002000000
Skills: 080000002b0000000d000000810000008400000002000000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3388,7 +3388,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 080000002b0000000d000000200000008b000000920000008400000002000000
Skills: 080000002b0000000d0000008b000000920000008400000002000000
Sprite: {fileID: 21300000, guid: a5f0d65989fcf8140b7434d09144f244, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3448,7 +3448,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d00000020000000730000000200000074000000d0000000
Skills: 0d000000730000000200000074000000d0000000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3474,7 +3474,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d000000200000007a000000020000007500000074000000d0000000
Skills: 0d0000007a000000020000007500000074000000d0000000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3500,7 +3500,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d00000020000000020000007a0000007600000074000000d0000000
Skills: 0d000000020000007a0000007600000074000000d0000000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3526,7 +3526,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0d000000200000007a00000002000000760000004700000074000000d0000000
Skills: 0d0000007a00000002000000760000004700000074000000d0000000
Sprite: {fileID: 21300000, guid: bd7e07fc549ba8a46a4eb79a62f9090b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3552,7 +3552,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 0d000000200000000c00000002000000
Skills: 0d0000000c00000002000000
Sprite: {fileID: 21300000, guid: 869a247f7a81bff4c872f47d8e8e9cfe, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3578,7 +3578,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 0d00000020000000020000000c0000006f000000
Skills: 0d000000020000000c0000006f000000
Sprite: {fileID: 21300000, guid: 869a247f7a81bff4c872f47d8e8e9cfe, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3604,7 +3604,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 0d00000020000000020000000c0000006f00000071000000
Skills: 0d000000020000000c0000006f00000071000000
Sprite: {fileID: 21300000, guid: 869a247f7a81bff4c872f47d8e8e9cfe, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3630,7 +3630,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 0d00000020000000020000000c0000007200000071000000
Skills: 0d000000020000000c0000007200000071000000
Sprite: {fileID: 21300000, guid: 869a247f7a81bff4c872f47d8e8e9cfe, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3656,7 +3656,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 0d00000020000000020000002b000000
Skills: 0d000000020000002b000000
Sprite: {fileID: 21300000, guid: f4a89946e6d83f5498b8da8784d65ac4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3682,7 +3682,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 0d000000200000000200000004000000850000002b000000
Skills: 0d0000000200000004000000850000002b000000
Sprite: {fileID: 21300000, guid: f4a89946e6d83f5498b8da8784d65ac4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3708,7 +3708,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 0d00000020000000020000000400000085000000860000002b000000
Skills: 0d000000020000000400000085000000860000002b000000
Sprite: {fileID: 21300000, guid: f4a89946e6d83f5498b8da8784d65ac4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3760,7 +3760,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 0d000000200000000200000013000000
Skills: 0d0000000200000013000000
Sprite: {fileID: 21300000, guid: 82b5cf2ca68e54d4ba986589c3e86efd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3786,7 +3786,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 0d0000002000000002000000130000007d000000
Skills: 0d00000002000000130000007d000000
Sprite: {fileID: 21300000, guid: 82b5cf2ca68e54d4ba986589c3e86efd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3812,7 +3812,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 0d0000002000000002000000130000007d0000007e000000
Skills: 0d00000002000000130000007d0000007e000000
Sprite: {fileID: 21300000, guid: 82b5cf2ca68e54d4ba986589c3e86efd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -3838,7 +3838,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 0d0000002000000002000000130000007d0000007e0000007f000000
Skills: 0d00000002000000130000007d0000007e0000007f000000
Sprite: {fileID: 21300000, guid: 82b5cf2ca68e54d4ba986589c3e86efd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4670,7 +4670,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4696,7 +4696,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0200000003000000630000000d00000020000000
Skills: 0200000003000000630000000d000000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4722,7 +4722,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 020000000300000063000000640000000d00000020000000
Skills: 020000000300000063000000640000000d000000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4765,7 +4765,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 020000000300000065000000640000000d00000020000000
Skills: 020000000300000065000000640000000d000000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4808,7 +4808,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 020000000d000000200000000c00000003000000
Skills: 020000000d0000000c00000003000000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4834,7 +4834,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 02000000510000005a0000000d000000200000000c00000003000000
Skills: 02000000510000005a0000000d0000000c00000003000000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4860,7 +4860,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 3
Cost: 0
Skills: 02000000510000005b0000005a0000000d000000200000000c00000003000000
Skills: 02000000510000005b0000005a0000000d0000000c00000003000000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4886,7 +4886,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 3
Cost: 0
Skills: 0200000051000000030100005a0000005b0000000d000000200000000c00000003000000
Skills: 0200000051000000030100005a0000005b0000000d0000000c00000003000000
Sprite: {fileID: 21300000, guid: b726d8d6bc92ae54e90e8e32457c53d1, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4912,7 +4912,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 020000000c000000540000000d00000020000000
Skills: 020000000c000000540000000d000000
Sprite: {fileID: 21300000, guid: 64c12350da3f8f7488ea4585bac25d7a, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4938,7 +4938,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 2
Cost: 0
Skills: 020000000c00000054000000550000000d00000020000000
Skills: 020000000c00000054000000550000000d000000
Sprite: {fileID: 21300000, guid: 64c12350da3f8f7488ea4585bac25d7a, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4964,7 +4964,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 2
Cost: 0
Skills: 020000000c000000540000005500000056000000570000000d00000020000000
Skills: 020000000c000000540000005500000056000000570000000d000000
Sprite: {fileID: 21300000, guid: 64c12350da3f8f7488ea4585bac25d7a, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -4990,7 +4990,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 2
Cost: 0
Skills: 020000000c00000054000000550000005600000057000000580000000d00000020000000
Skills: 020000000c00000054000000550000005600000057000000580000000d000000
Sprite: {fileID: 21300000, guid: 64c12350da3f8f7488ea4585bac25d7a, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5033,7 +5033,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 2
Cost: 0
Skills: 02000000510000000d00000020000000
Skills: 02000000510000000d000000
Sprite: {fileID: 21300000, guid: 523c2b2d5f317d649939a184e79b9d5e, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5059,7 +5059,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 2
Cost: 0
Skills: 0200000051000000670000000d00000020000000
Skills: 0200000051000000670000000d000000
Sprite: {fileID: 21300000, guid: 523c2b2d5f317d649939a184e79b9d5e, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5085,7 +5085,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 2
Cost: 0
Skills: 020000005100000067000000680000000d00000020000000
Skills: 020000005100000067000000680000000d000000
Sprite: {fileID: 21300000, guid: 523c2b2d5f317d649939a184e79b9d5e, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5111,7 +5111,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 2
Cost: 0
Skills: 020000005100000067000000680000000d00000020000000
Skills: 020000005100000067000000680000000d000000
Sprite: {fileID: 21300000, guid: 523c2b2d5f317d649939a184e79b9d5e, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5137,7 +5137,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000000d0000002000000051000000
Skills: 020000000d00000051000000
Sprite: {fileID: 21300000, guid: 626b0c5255680844094c67732e660d56, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5163,7 +5163,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000005c0000000d0000002000000051000000
Skills: 020000005c0000000d00000051000000
Sprite: {fileID: 21300000, guid: 626b0c5255680844094c67732e660d56, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5189,7 +5189,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000005c0000000d00000020000000fe00000051000000
Skills: 020000005c0000000d000000fe00000051000000
Sprite: {fileID: 21300000, guid: 626b0c5255680844094c67732e660d56, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5215,7 +5215,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 020000005c000000610000000d00000020000000fe00000051000000
Skills: 020000005c000000610000000d000000fe00000051000000
Sprite: {fileID: 21300000, guid: 626b0c5255680844094c67732e660d56, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5544,7 +5544,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000200000009400000096000000
Skills: 020000009400000096000000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5570,7 +5570,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000200000009400000096000000b80000009a000000
Skills: 020000009400000096000000b80000009a000000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5613,7 +5613,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000200000009400000096000000b9000000b7000000
Skills: 020000009400000096000000b9000000b7000000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5656,7 +5656,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000200000009400000096000000b9000000b7000000c0000000
Skills: 020000009400000096000000b9000000b7000000c0000000
Sprite: {fileID: 21300000, guid: 40858c020e180bb40a335f460c4a1d70, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5699,7 +5699,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c000000200000009b0000009c000000
Skills: 020000000c0000009b0000009c000000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5725,7 +5725,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c000000200000009b0000009c000000ba000000
Skills: 020000000c0000009b0000009c000000ba000000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5751,7 +5751,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c000000200000009b0000009c000000ba000000bb000000
Skills: 020000000c0000009b0000009c000000ba000000bb000000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5777,7 +5777,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 2
Cost: 0
Skills: 020000000c000000200000009b0000009c000000ba000000bb000000bc000000
Skills: 020000000c0000009b0000009c000000ba000000bb000000bc000000
Sprite: {fileID: 21300000, guid: cb8459c31c131994e987d4fc1c0fd8bd, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5803,7 +5803,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0200000020000000030000000c000000a1000000
Skills: 02000000030000000c000000a1000000
Sprite: {fileID: 21300000, guid: 44cf6a6ef01989f428d8ff088eba71d9, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5829,7 +5829,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0200000020000000030000000c000000a1000000a0000000
Skills: 02000000030000000c000000a1000000a0000000
Sprite: {fileID: 21300000, guid: 44cf6a6ef01989f428d8ff088eba71d9, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5855,7 +5855,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0200000020000000030000000c000000a1000000a0000000a3000000
Skills: 02000000030000000c000000a1000000a0000000a3000000
Sprite: {fileID: 21300000, guid: 44cf6a6ef01989f428d8ff088eba71d9, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5881,7 +5881,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 0200000020000000030000000c000000a1000000a0000000a3000000a4000000
Skills: 02000000030000000c000000a1000000a0000000a3000000a4000000
Sprite: {fileID: 21300000, guid: 44cf6a6ef01989f428d8ff088eba71d9, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5907,7 +5907,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 02000000030000002000000093000000
Skills: 020000000300000093000000
Sprite: {fileID: 21300000, guid: b1854ebad9f229141a76927890e12b05, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5933,7 +5933,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 020000000300000020000000c1000000a600000093000000
Skills: 0200000003000000c1000000a600000093000000
Sprite: {fileID: 21300000, guid: b1854ebad9f229141a76927890e12b05, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -5959,7 +5959,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 1
Cost: 0
Skills: 020000000300000020000000c1000000a6000000a700000093000000
Skills: 0200000003000000c1000000a6000000a700000093000000
Sprite: {fileID: 21300000, guid: b1854ebad9f229141a76927890e12b05, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6002,7 +6002,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 1
Cost: 0
Skills: 020000000300000020000000c1000000a6000000a7000000a800000093000000
Skills: 0200000003000000c1000000a6000000a7000000a800000093000000
Sprite: {fileID: 21300000, guid: b1854ebad9f229141a76927890e12b05, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6045,7 +6045,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 0200000020000000a9000000
Skills: 02000000a9000000
Sprite: {fileID: 21300000, guid: 9c71f8e8458387f4c993a28beba5b386, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6071,7 +6071,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 0200000020000000a9000000aa000000ac00000006000000
Skills: 02000000a9000000aa000000ac00000006000000
Sprite: {fileID: 21300000, guid: 9c71f8e8458387f4c993a28beba5b386, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6097,7 +6097,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 0200000020000000a9000000aa000000ac000000ad00000006000000d1000000
Skills: 02000000a9000000aa000000ac000000ad00000006000000d1000000
Sprite: {fileID: 21300000, guid: 9c71f8e8458387f4c993a28beba5b386, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6123,7 +6123,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 0200000020000000a9000000aa000000ac000000ad000000ae00000006000000d1000000
Skills: 02000000a9000000aa000000ac000000ad000000ae00000006000000d1000000
Sprite: {fileID: 21300000, guid: 9c71f8e8458387f4c993a28beba5b386, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6149,7 +6149,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 20000000e000000002000000
Skills: e000000002000000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6175,7 +6175,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 20000000e0000000d300000002000000
Skills: e0000000d300000002000000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6201,7 +6201,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 20000000e0000000d3000000d400000002000000
Skills: e0000000d3000000d400000002000000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6227,7 +6227,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 20000000e0000000d3000000d4000000f200000002000000
Skills: e0000000d3000000d4000000f200000002000000
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6253,7 +6253,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 20000000db0000000c000000dc00000003000000e100000002000000
Skills: db0000000c000000dc00000003000000e100000002000000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6279,7 +6279,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 20000000db0000000c000000dc000000030000001d000000e100000002000000
Skills: db0000000c000000dc000000030000001d000000e100000002000000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6305,7 +6305,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 20000000db0000000c000000dc000000030000001d000000e1000000e200000002000000
Skills: db0000000c000000dc000000030000001d000000e1000000e200000002000000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6331,7 +6331,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 20000000db0000000c000000dc000000030000001d000000e1000000e200000002000000dd000000
Skills: db0000000c000000dc000000030000001d000000e1000000e200000002000000dd000000
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6357,7 +6357,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 20000000e3000000020000000c00000003000000
Skills: e3000000020000000c00000003000000
Sprite: {fileID: 21300000, guid: 91b74550ff01e84408d84d19f41f0855, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6383,7 +6383,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 20000000e3000000020000000c00000003000000
Skills: e3000000020000000c00000003000000
Sprite: {fileID: 21300000, guid: 91b74550ff01e84408d84d19f41f0855, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6426,7 +6426,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 20000000e3000000020000000c00000003000000
Skills: e3000000020000000c00000003000000
Sprite: {fileID: 21300000, guid: 91b74550ff01e84408d84d19f41f0855, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6486,7 +6486,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 20000000e3000000020000000c00000003000000
Skills: e3000000020000000c00000003000000
Sprite: {fileID: 21300000, guid: 91b74550ff01e84408d84d19f41f0855, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6546,7 +6546,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 20000000e5000000fb00000007000000
Skills: e5000000fb00000007000000
Sprite: {fileID: 21300000, guid: 2402fd4a0df809349bab2260b42a3d5b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6572,7 +6572,7 @@ MonoBehaviour:
MoveRange: 2
AttackRange: 1
Cost: 0
Skills: 20000000e5000000e7000000fb00000007000000
Skills: e5000000e7000000fb00000007000000
Sprite: {fileID: 21300000, guid: 2402fd4a0df809349bab2260b42a3d5b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6598,7 +6598,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 1
Cost: 0
Skills: 20000000e5000000e7000000e9000000fb0000000c00000007000000
Skills: e5000000e7000000e9000000fb0000000c00000007000000
Sprite: {fileID: 21300000, guid: 2402fd4a0df809349bab2260b42a3d5b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6624,7 +6624,7 @@ MonoBehaviour:
MoveRange: 3
AttackRange: 1
Cost: 0
Skills: 20000000e5000000e7000000e9000000fb0000000c00000007000000
Skills: e5000000e7000000e9000000fb0000000c00000007000000
Sprite: {fileID: 21300000, guid: 2402fd4a0df809349bab2260b42a3d5b, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6650,7 +6650,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 20000000eb00000002000000
Skills: eb00000002000000
Sprite: {fileID: 21300000, guid: 73ae037f4b5dab74caa7b0457186a8a6, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6676,7 +6676,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 20000000eb000000ec00000002000000
Skills: eb000000ec00000002000000
Sprite: {fileID: 21300000, guid: 73ae037f4b5dab74caa7b0457186a8a6, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6702,7 +6702,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 20000000eb000000ec000000ed00000002000000
Skills: eb000000ec000000ed00000002000000
Sprite: {fileID: 21300000, guid: 73ae037f4b5dab74caa7b0457186a8a6, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -6728,7 +6728,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 20000000eb000000ec000000ed000000f000000002000000
Skills: eb000000ec000000ed000000f000000002000000
Sprite: {fileID: 21300000, guid: 73ae037f4b5dab74caa7b0457186a8a6, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7512,7 +7512,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7538,7 +7538,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7564,7 +7564,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7590,8 +7590,8 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Sprite: {fileID: 21300000, guid: 7e5873fda33bd92468d7c7e9d7356112, type: 3}
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
ProjectileType: 12
@ -7616,7 +7616,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: 0dbaa2160980ead4c9af0a34805fb6f4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7642,7 +7642,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: 0dbaa2160980ead4c9af0a34805fb6f4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7668,7 +7668,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7694,7 +7694,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: 0dbaa2160980ead4c9af0a34805fb6f4, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7720,7 +7720,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7746,7 +7746,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7772,7 +7772,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7798,7 +7798,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: f141ee43e493f884583e75cef6dcbd50, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7824,7 +7824,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7850,7 +7850,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7876,7 +7876,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 2
Cost: 0
Skills: 020000000300000063000000640000000d00000020000000
Skills: 020000000300000063000000640000000d000000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []
@ -7902,7 +7902,7 @@ MonoBehaviour:
MoveRange: 1
AttackRange: 1
Cost: 0
Skills: 02000000030000000d00000020000000
Skills: 02000000030000000d000000
Sprite: {fileID: 21300000, guid: 3b3b6787cac0d204098a5bc6036471e5, type: 3}
IsSpriteVarient: 0
SpriteList: []

View File

@ -12,8 +12,13 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c659b850b20e460f866ed3f696be406b, type: 3}
m_Name: VersionConfig
m_EditorClassIdentifier:
CurVersionId: 70102
CurVersionId: 70103
Versions:
- MajorVersion: 0
MinorVersion: 7
PatchVersion: 1
Description: 19539
FourthVersion: 3
- MajorVersion: 0
MinorVersion: 7
PatchVersion: 1

View File

@ -534,3 +534,13 @@ MonoBehaviour:
Name: 19522
- Type: 11
Name: 19524
- Type: 12
Name: 19540
- Type: 13
Name: 19544
- Type: 14
Name: 19545
- Type: 15
Name: 19546
- Type: 16
Name: 19547

View File

@ -0,0 +1,400 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1215931183778596865
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1393707766859885621}
- component: {fileID: 2537907885022447908}
- component: {fileID: 7971524524566382832}
- component: {fileID: 6164224945701174129}
- component: {fileID: 1692975753383726211}
m_Layer: 5
m_Name: BG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1393707766859885621
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1215931183778596865}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 90}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 1730888228878187602}
- {fileID: 1159084775256877320}
m_Father: {fileID: 6003267594867130460}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2537907885022447908
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1215931183778596865}
m_CullTransparentMesh: 1
--- !u!114 &7971524524566382832
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1215931183778596865}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 2d527368e90ba5344862b2c1047892d5, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &6164224945701174129
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1215931183778596865}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 877da1f2a753cba41a4ae5bf9e3a37bd, type: 3}
m_Name:
m_EditorClassIdentifier:
positionOffset: {x: 15, y: -15}
DataProvider:
HintDataType: 0
Text: "\u9ED8\u8BA4\u9759\u6001\u6587\u672C..."
TechTypeData: 0
SkillTypeData: 0
ActionIdData:
ActionType: 0
WonderType: 0
ResourceType: 0
FeatureType: 0
TerrainType: 0
UnitType: 0
GiantType: 0
UnitLevel: 0
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
PlayerActionType: 0
AIParamType: 0
CultureCardType: 0
locked: 0
TextData:
ActionType: 0
WonderType: 0
ResourceType: 0
FeatureType: 0
TerrainType: 0
UnitType: 0
GiantType: 0
UnitLevel: 0
Vegetation: 0
UnitActionType: 0
CityLevelUpActionType: 0
GridMiscActionType: 0
SkillType: 0
TechType: 0
PlayerActionType: 0
AIParamType: 0
CultureCardType: 0
TechAtom: 0
GeoIdList:
UnitFullType:
UnitType: 0
GiantType: 0
UnitLevel: 0
PlayerTaskType: 0
WikiId: 0
--- !u!114 &1692975753383726211
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1215931183778596865}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 7971524524566382832}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &2891400149996157267
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1730888228878187602}
- component: {fileID: 5902579173690712389}
- component: {fileID: 3530477774206838960}
m_Layer: 5
m_Name: CircleBG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1730888228878187602
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2891400149996157267}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1393707766859885621}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0.1637, y: -0.1637}
m_SizeDelta: {x: 52.3965, y: 52.3965}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5902579173690712389
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2891400149996157267}
m_CullTransparentMesh: 1
--- !u!114 &3530477774206838960
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2891400149996157267}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: cbc588077765017468a18af2e00cbf0e, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3806178634603532766
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1159084775256877320}
- component: {fileID: 4822656206613873570}
- component: {fileID: 3148148894576011886}
m_Layer: 5
m_Name: Icon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1159084775256877320
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3806178634603532766}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 1393707766859885621}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4822656206613873570
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3806178634603532766}
m_CullTransparentMesh: 1
--- !u!114 &3148148894576011886
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3806178634603532766}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 9ff9ca0db1598d044809320d76d599b9, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4360640776861055532
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6003267594867130460}
- component: {fileID: 5507841636063990826}
- component: {fileID: 7263354246565061204}
m_Layer: 5
m_Name: UIOutsideWikiSkillCircle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6003267594867130460
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4360640776861055532}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1393707766859885621}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 60, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5507841636063990826
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4360640776861055532}
m_CullTransparentMesh: 1
--- !u!114 &7263354246565061204
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4360640776861055532}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: af78a47a854f5dc4d929a5e3fcb34969, type: 3}
m_Name:
m_EditorClassIdentifier:
Button: {fileID: 1692975753383726211}
SkillIcon: {fileID: 3148148894576011886}
SkillIconBG: {fileID: 3530477774206838960}
HintTrigger: {fileID: 6164224945701174129}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6865a74ed5ebc28429fff8f6fd1ecb2c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1026,7 +1026,7 @@ MonoBehaviour:
Ban: 0
NoExport: 0
FontBan: 0
ID: 19537
ID: 19543
FontID: 0
TextCfg:
- Type: 1

View File

@ -419,6 +419,84 @@ MonoBehaviour:
ID: 19501
FontID: 0
TextCfg: []
--- !u!1 &1856361994805601594
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8585474528489104364}
- component: {fileID: 826663408337458205}
- component: {fileID: 2911322788268359877}
m_Layer: 5
m_Name: CommonGridAvatarItemDesc
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8585474528489104364
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1856361994805601594}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2821390522735837682}
m_Father: {fileID: 7949361260912353484}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 358.655, y: -68.862}
m_SizeDelta: {x: 717.31, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &826663408337458205
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1856361994805601594}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 10
m_Bottom: 10
m_ChildAlignment: 0
m_Spacing: 5
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &2911322788268359877
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1856361994805601594}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
--- !u!1 &2140181535152886358
GameObject:
m_ObjectHideFlags: 0
@ -711,6 +789,7 @@ RectTransform:
- {fileID: 1016575307829893954}
- {fileID: 5192563354822985849}
- {fileID: 2960578512072476292}
- {fileID: 8585474528489104364}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
@ -775,6 +854,7 @@ MonoBehaviour:
UnitSkillGroup: {fileID: 6669863128309909444}
HeroUpgradeGroup: {fileID: 9101884546974498372}
CommonGridItemDescGroup: {fileID: 6909818060879782716}
CommonGridAvatarItemDescGroup: {fileID: 1856361994805601594}
TitleText: {fileID: 7965783891130610835}
DescText: {fileID: 8851566629389897434}
UnitInfoAttackTxt: {fileID: 517234351961644657}
@ -784,14 +864,12 @@ MonoBehaviour:
UnitInfoRangeTxt: {fileID: 6658671365723502807}
UnitInfoMobilityTxt: {fileID: 5686482175039629662}
SkillCircleArea: {fileID: 8664535126158727785}
SkillCirclePrefab: {fileID: 4360640776861055532, guid: 63ad2da40f8ceb74080c8f8a014d1bdc, type: 3}
SkillCirclePrefab: {fileID: 7263354246565061204, guid: 6865a74ed5ebc28429fff8f6fd1ecb2c, type: 3}
HeroUpgradeDescText: {fileID: 4363202444080834106}
GridGroup: {fileID: 6548214083712515793}
GridItemPrefab: {fileID: 1290847562389455671, guid: 5b3e30174d3d12a46a034556506a9c65, type: 3}
PlayerTechPoolGroup: {fileID: 58106919248076413}
PlayerTechPoolLv1Text: {fileID: 5477750344117662252}
PlayerTechPoolLv2Text: {fileID: 7409200840167881465}
PlayerTechPoolLv3Text: {fileID: 2117084871166193225}
AvatarGridGroup: {fileID: 2821390522735837682}
AvatarItemPrefab: {fileID: -5341892062591051981, guid: e274a61c117cab44c976c41710af5b5b, type: 3}
--- !u!1 &2337170077994540037
GameObject:
m_ObjectHideFlags: 0
@ -2343,6 +2421,90 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
--- !u!1 &7036610063461850055
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2821390522735837682}
- component: {fileID: 3589519491782207019}
- component: {fileID: 3856530571759336460}
- component: {fileID: 9080526498954745576}
m_Layer: 5
m_Name: GridGroup
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2821390522735837682
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7036610063461850055}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8585474528489104364}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 346.02704, y: -10}
m_SizeDelta: {x: 692.0541, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3589519491782207019
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7036610063461850055}
m_CullTransparentMesh: 1
--- !u!114 &3856530571759336460
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7036610063461850055}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
--- !u!114 &9080526498954745576
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7036610063461850055}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 10
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_StartCorner: 0
m_StartAxis: 0
m_CellSize: {x: 60, y: 60}
m_Spacing: {x: 5, y: 0}
m_Constraint: 0
m_ConstraintCount: 2
--- !u!1 &7345957065528861176
GameObject:
m_ObjectHideFlags: 0

View File

@ -0,0 +1,213 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3389767439914072609
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4352498928066414512}
- component: {fileID: 3528661208874349432}
- component: {fileID: 7477601296852297876}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4352498928066414512
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3389767439914072609}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2468592900116520049}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0.3777, y: 0}
m_SizeDelta: {x: 60.755, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3528661208874349432
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3389767439914072609}
m_CullTransparentMesh: 1
--- !u!114 &7477601296852297876
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3389767439914072609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 6bb640e5ad6fd9a4aa4cc673e625ca86, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5754249080142146628
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2468592900116520049}
- component: {fileID: 4629897242281628367}
- component: {fileID: 5670061094075235227}
- component: {fileID: 751107179801170817}
- component: {fileID: -5341892062591051981}
m_Layer: 5
m_Name: UIOutsideWikiDescGroupGridAvatarItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2468592900116520049
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5754249080142146628}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4352498928066414512}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4629897242281628367
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5754249080142146628}
m_CullTransparentMesh: 1
--- !u!114 &5670061094075235227
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5754249080142146628}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 5265ff29dc87f384f883b9e077dd2e8f, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 2.5
--- !u!114 &751107179801170817
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5754249080142146628}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.58176094, g: 0.6354496, b: 1, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 5670061094075235227}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &-5341892062591051981
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5754249080142146628}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3e69d7a1d151fda48b3c1714c1a6f33a, type: 3}
m_Name:
m_EditorClassIdentifier:
Button: {fileID: 751107179801170817}
Avatar: {fileID: 7477601296852297876}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e274a61c117cab44c976c41710af5b5b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -11,6 +11,7 @@ GameObject:
- component: {fileID: 4352498928066414512}
- component: {fileID: 3528661208874349432}
- component: {fileID: 7266380939716781321}
- component: {fileID: -1432419705357939577}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
@ -134,6 +135,24 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &-1432419705357939577
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3389767439914072609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
ID: 19538
FontID: 0
TextCfg: []
--- !u!1 &5754249080142146628
GameObject:
m_ObjectHideFlags: 0
@ -235,7 +254,7 @@ MonoBehaviour:
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_PressedColor: {r: 0.58176094, g: 0.6354496, b: 1, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
@ -266,7 +285,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2b9e7c41a18d4f9ea6c3d5713f8a9c10, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Name:
m_EditorClassIdentifier:
Button: {fileID: 751107179801170817}
Text: {fileID: 7266380939716781321}

View File

@ -208,6 +208,8 @@ MonoBehaviour:
UnitBGRed: {r: 0.99607843, g: 0, b: 0.48235294, a: 1}
UnitBGGreen: {r: 0, g: 0.7610062, b: 0.1462325, a: 1}
UnitLowHealth: {r: 0.5647059, g: 0.039575133, b: 0.039575133, a: 1}
UnionBGNormalColor: {r: 1, g: 1, b: 1, a: 1}
UnionBGBetrayColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!1 &1540669486289876344
GameObject:
m_ObjectHideFlags: 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: f202a1e2950e5c74aadb1dadbff370dd
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -77,6 +77,10 @@ namespace TH1_Logic.MatchConfig
HasTechAtom,//拥有科技子条目
HasInitTechAtom,//拥有初始科技子条目
BelongTech,//科技子条目属于什么科技?
Level1Tech,//阵营科技池里拥有的1级科技
Level2Tech,//阵营科技池里拥有的2级科技
Level3Tech,//阵营科技池里拥有的3级科技
TechBelongEmpire,//一个tech属于哪些帝国
}
@ -259,6 +263,23 @@ namespace TH1_Logic.MatchConfig
return item;
}
// 通过 SkillType 反查对应 Wiki 条目的 Id找不到返回 0。
// Skill 条目的 wikiId 用递增 raw 编码(见 BuildFromSkill无法直接用 SkillType 编码,
// 需要遍历查找。技能数量有限O(n) 可接受。
public uint FindWikiIdBySkillType(SkillType skillType)
{
if (skillType == SkillType.NONE) return 0;
EnsureCache();
for (int i = 0; i < _allItems.Count; i++)
{
var it = _allItems[i];
if (it == null) continue;
if (WikiId.GetSource(it.Id) != WikiSource.Skill) continue;
if (it.SkillType == skillType) return it.Id;
}
return 0;
}
// 通过 Name 多语言 key 的包含关系筛选大小写不敏感keyword 为空时返回空
// 调用方传入 outResult 复用 List 以避免 GC
public void FindByName(string keyword, List<WikiItem> outResult)
@ -316,6 +337,8 @@ namespace TH1_Logic.MatchConfig
techDescs.Add(new DescItem { DescType = WikiDescType.PreTech });
if (info.TechAtomList != null && info.TechAtomList.Count > 0)
techDescs.Add(new DescItem { DescType = WikiDescType.HasTechAtom });
if (HasAnyEmpireWithTech(info.TechType))
techDescs.Add(new DescItem { DescType = WikiDescType.TechBelongEmpire });
var item = new WikiItem
{
@ -345,6 +368,15 @@ namespace TH1_Logic.MatchConfig
try { icon = info.GetIcon(CivEnum.Common, ForceEnum.Common); }
catch { icon = null; }
var atomDescs = new List<DescItem>
{
new DescItem { DescType = WikiDescType.Normal, Desc = info.Desc }
};
// 仅当存在 Tech 把这个 atom 列在 TechAtomList 里时,才追加 BelongTech 段
// 具体的 Tech 名称列表由 WikiDescGroup 的 BelongTech 分支运行时拼。
if (HasOwningTech(info.TechAtom))
atomDescs.Add(new DescItem { DescType = WikiDescType.BelongTech });
var item = new WikiItem
{
Id = WikiId.Encode(WikiSource.TechAtom, (uint)info.TechAtom),
@ -355,10 +387,8 @@ namespace TH1_Logic.MatchConfig
Icon = icon,
IconSizeType = info.iconViewSizeType,
HasIcon = icon != null,
DescItems = new List<DescItem>
{
new DescItem { DescType = WikiDescType.Normal, Desc = info.Desc }
}
DescItems = atomDescs,
TechAtomKey = info.TechAtom,
};
outList.Add(item);
}
@ -409,6 +439,22 @@ namespace TH1_Logic.MatchConfig
}
}
// 是否存在某个 TechInfo.TechAtomList 包含此 atom即此 atom 至少归属一个 Tech
private static bool HasOwningTech(TechAtom atom)
{
var techAssets = Table.Instance?.TechDataAssets;
if (techAssets == null) return false;
var techList = techAssets.TechList;
if (techList == null) return false;
for (int i = 0; i < techList.Count; i++)
{
var t = techList[i];
if (t == null || t.TechAtomList == null) continue;
if (t.TechAtomList.Contains(atom)) return true;
}
return false;
}
// 是否存在 TechAtom 通过 EnableAction + TechActions 解锁此 actionId
private static bool HasUnlockingTechAtom(CommonActionId actionId)
{
@ -526,6 +572,38 @@ namespace TH1_Logic.MatchConfig
}
}
// PlayerDataList 中是否存在 TechPool 包含指定 TechType 的 Player
// 用于决定 Tech 条目是否生成 TechBelongEmpire 段
private static bool HasAnyEmpireWithTech(global::TechType techType)
{
var assets = Table.Instance?.PlayerDataAssets;
if (assets?.PlayerDataList == null) return false;
var list = assets.PlayerDataList;
for (int i = 0; i < list.Count; i++)
{
var info = list[i];
if (info == null) continue;
if (string.IsNullOrEmpty(info.ForceName)) continue;
if (info.TechPool == null) continue;
if (info.TechPool.Contains(techType)) return true;
}
return false;
}
// PlayerInfo.TechPool 中是否存在指定 CostLevel 的 Tech用于决定是否生成 LevelXTech 段
private static bool HasTechPoolAtCostLevel(GlobalPlayerInfo info, int costLevel)
{
if (info?.TechPool == null) return false;
var techAssets = Table.Instance?.TechDataAssets;
if (techAssets == null) return false;
for (int i = 0; i < info.TechPool.Count; i++)
{
if (!techAssets.GetTechInfo(info.TechPool[i], out var techInfo) || techInfo == null) continue;
if (techInfo.CostLevel == costLevel) return true;
}
return false;
}
private static void BuildFromPlayer(List<WikiItem> outList)
{
var assets = Table.Instance?.PlayerDataAssets;
@ -545,8 +623,13 @@ namespace TH1_Logic.MatchConfig
{
new DescItem { DescType = WikiDescType.Normal, Desc = info.EmpireDesc }
};
if (info.TechPool != null && info.TechPool.Count > 0)
playerDescs.Add(new DescItem { DescType = WikiDescType.PlayerTechPool });
// 把 TechPool 按 CostLevel 拆 3 段,每段一个 CommonGridItemDescGroup
if (HasTechPoolAtCostLevel(info, 1))
playerDescs.Add(new DescItem { DescType = WikiDescType.Level1Tech });
if (HasTechPoolAtCostLevel(info, 2))
playerDescs.Add(new DescItem { DescType = WikiDescType.Level2Tech });
if (HasTechPoolAtCostLevel(info, 3))
playerDescs.Add(new DescItem { DescType = WikiDescType.Level3Tech });
if (info.TechAtomList != null && info.TechAtomList.Count > 0)
playerDescs.Add(new DescItem { DescType = WikiDescType.HasInitTechAtom });
@ -727,6 +810,7 @@ namespace TH1_Logic.MatchConfig
[NonSerialized] public SkillType SkillType;
[NonSerialized] public GiantType HeroGiantType;
[NonSerialized] public TechType TechType;
[NonSerialized] public TechAtom TechAtomKey;
[NonSerialized] public CommonActionId ActionId;
[NonSerialized] public uint ForceId;

View File

@ -19,6 +19,8 @@ public class UnitMono : MonoBehaviour
public Image ChessBG;
public Image ChessImg;
public GameObject UnionBG;
//可选UnionBG 上的 Image 引用,用于改色;不拖时会通过 GetComponent 兜底
public Image UnionBGImage;
public GameObject Defense;
public GameObject SuperDefense;
public TextMeshProUGUI UnitInfoName;
@ -41,6 +43,11 @@ public class UnitMono : MonoBehaviour
public Color UnitBGRed;
public Color UnitBGGreen;
public Color UnitLowHealth;
//UnionBG 正常显示颜色(同盟)
public Color UnionBGNormalColor = Color.white;
//UnionBG 背盟显示颜色(刚背盟还未脱离同盟关系记录)
public Color UnionBGBetrayColor = Color.black;
void Start()
{

View File

@ -288,11 +288,25 @@ namespace TH1_Renderer
//如果是盟友,额外显示盟友标记
var showUnionIcon = Main.MapData.SameUnion(playerData.Id, Main.MapData.PlayerMap.SelfPlayerId) &&
playerData.Id != Main.MapData.PlayerMap.SelfPlayerId;
_unitMono.UnionBG.SetActive(showUnionIcon);
//如果是盟友,额外显示盟友标记;背盟状态也显示但用背盟颜色
var selfPlayerId = Main.MapData.PlayerMap.SelfPlayerId;
bool isSelf = playerData.Id == selfPlayerId;
bool sameUnion = Main.MapData.SameUnion(playerData.Id, selfPlayerId);
bool sameOrJustBreak = Main.MapData.SameUnionOrJustBreakUnion(playerData.Id, selfPlayerId);
bool justBreakUnion = sameOrJustBreak && !sameUnion;
bool showUnionIcon = !isSelf && (sameUnion || justBreakUnion);
if (_unitMono.UnionBG != null)
{
_unitMono.UnionBG.SetActive(showUnionIcon);
if (showUnionIcon)
{
var unionImg = _unitMono.UnionBGImage != null
? _unitMono.UnionBGImage
: _unitMono.UnionBG.GetComponent<UnityEngine.UI.Image>();
if (unionImg != null)
unionImg.color = justBreakUnion ? _unitMono.UnionBGBetrayColor : _unitMono.UnionBGNormalColor;
}
}
//更改兵种显示文字
if(Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(_unitData.UnitType,_unitData.GiantType,_unitData.UnitLevel,out var info))

View File

@ -53,6 +53,11 @@ namespace TH1_UI.Controller.Outside
protected override void OnOpen()
{
base.OnOpen();
// Wiki 是浮窗,需要置顶到 OutsideUI 层最上方,避免被其它 OutsideUI view 覆盖
if (WindowObj != null)
{
WindowObj.transform.SetAsLastSibling();
}
ResetSelection();
if (_openParameter is ShowUIOutsideWiki evt)
{

View File

@ -0,0 +1,40 @@
using UnityEngine;
using UnityEngine.UI;
namespace TH1_UI.View.Outside.WikiSub
{
// Avatar 版 GridItem和 UIOutsideWikiDescGroupGridItemMono 同样是"Button + wikiId"
// 的可点击条目,区别在于展示一张 Image如 LeaderAvatar而不是文本。
// wikiId == 0 时点击无操作。
public class UIOutsideWikiDescGroupAvatarItemMono : MonoBehaviour
{
public Button Button;
public Image Avatar;
public uint WikiId { get; private set; }
public void SetContent(Sprite avatar, uint wikiId)
{
WikiId = wikiId;
if (Avatar != null)
{
Avatar.sprite = avatar;
Avatar.enabled = avatar != null;
}
if (Button == null) Button = GetComponent<Button>();
if (Button != null)
{
Button.onClick.RemoveAllListeners();
Button.onClick.AddListener(HandleClick);
}
}
private void HandleClick()
{
if (WikiId == 0) return;
WikiDescGroup.RequestWikiJump(WikiId);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3e69d7a1d151fda48b3c1714c1a6f33a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,60 @@
using Logic.Skill;
using RuntimeData;
using TH1_UI.HintUI;
using TH1_Logic.MatchConfig;
using UI.HintUI;
using UnityEngine;
using UnityEngine.UI;
namespace TH1_UI.View.Outside.WikiSub
{
// Wiki 专用 SkillCircle相比 UIInfoCommonBaseSkillCircleMono 去掉了 Level/Time/Ban 等
// 运行时显示的字段,新增 wikiId 存储和点击跳转逻辑。
// - 点击整张卡跳转到 wikiId 对应条目wikiId==0 时无操作,按钮仍可点)。
// - 仅依赖 SkillType + UnitFullType + SkillViewType 的静态信息。
public class UIOutsideWikiSkillCircleMono : MonoBehaviour
{
public Button Button;
public Image SkillIcon;
public Image SkillIconBG;
public HintTrigger HintTrigger;
public uint WikiId { get; private set; }
public void SetContent(SkillType skillType, SkillViewType viewType,
UnitFullType unitFullType, uint wikiId)
{
WikiId = wikiId;
var skillAssets = Table.Instance?.SkillDataAssets;
if (skillAssets != null)
{
if (SkillIcon != null && skillAssets.GetSkillIcon(skillType, unitFullType, out var spr))
SkillIcon.sprite = spr;
if (SkillIconBG != null)
SkillIconBG.color = skillAssets.GetBGColor(viewType, false);
}
if (HintTrigger != null && HintTrigger.DataProvider != null)
{
HintTrigger.DataProvider.HintDataType = HintDataType.SkillHintData;
HintTrigger.DataProvider.SkillTypeData = skillType;
HintTrigger.DataProvider.UnitFullType = unitFullType;
HintTrigger.DataProvider.SkillParam = null;
}
if (Button == null) Button = GetComponent<Button>();
if (Button != null)
{
Button.onClick.RemoveAllListeners();
Button.onClick.AddListener(HandleClick);
}
}
private void HandleClick()
{
if (WikiId == 0) return;
WikiDescGroup.RequestWikiJump(WikiId);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: af78a47a854f5dc4d929a5e3fcb34969
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -4,7 +4,6 @@ using Logic.Multilingual;
using Logic.Skill;
using RuntimeData;
using TH1_Logic.MatchConfig;
using TH1_UI.View.Info;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
@ -30,6 +29,7 @@ namespace TH1_UI.View.Outside.WikiSub
public GameObject UnitSkillGroup;
public GameObject HeroUpgradeGroup;
public GameObject CommonGridItemDescGroup;
public GameObject CommonGridAvatarItemDescGroup;
// 普通文本模式
[Header("Base Desc")]
@ -46,31 +46,32 @@ namespace TH1_UI.View.Outside.WikiSub
public TextMeshProUGUI UnitInfoMobilityTxt;
// UnitSkill照搬 UIInfoGridInfoView 的 SkillArea但用静态版本不依赖 SkillBase
// 用 Wiki 专用 SkillCircle 预制(去掉 Level/Time/Ban加点击跳转
[Header("UnitSkill")]
public Transform SkillCircleArea;
public GameObject SkillCirclePrefab;
public UIOutsideWikiSkillCircleMono SkillCirclePrefab;
// HeroUpgrade照搬 TaskArea仅显示当前 Level 的 Desc
[Header("HeroUpgrade")]
public TextMeshProUGUI HeroUpgradeDescText;
// CommonGridItemDesc通用 Grid 列表,支持 TechLock 等场景。
// CommonGridItemDesc通用文本 Grid 列表,支持 TechLock 等场景。
// 每个 desc 段会按需要 spawn 多个 GridItem 到 GridGroup 下。
[Header("CommonGridItemDesc")]
public Transform GridGroup;
public UIOutsideWikiDescGroupGridItemMono GridItemPrefab;
// PlayerTechPoolForce 拥有的 TechPool按 CostLevel 1/2/3 拆 3 段)
[Header("PlayerTechPool")]
public GameObject PlayerTechPoolGroup;
public TextMeshProUGUI PlayerTechPoolLv1Text;
public TextMeshProUGUI PlayerTechPoolLv2Text;
public TextMeshProUGUI PlayerTechPoolLv3Text;
// CommonGridAvatarItemDesc图片版 Grid 列表(与 CommonGridItemDesc 完全独立的容器)。
// 用于 TechBelongEmpire 等需要展示头像而非文本的场景。
[Header("CommonGridAvatarItemDesc")]
public Transform AvatarGridGroup;
public UIOutsideWikiDescGroupAvatarItemMono AvatarItemPrefab;
public WikiDescType DescType { get; private set; }
private readonly List<GameObject> _spawnedSkillCircles = new List<GameObject>();
private readonly List<UIOutsideWikiSkillCircleMono> _spawnedSkillCircles = new List<UIOutsideWikiSkillCircleMono>();
private readonly List<UIOutsideWikiDescGroupGridItemMono> _spawnedGridItems = new List<UIOutsideWikiDescGroupGridItemMono>();
private readonly List<UIOutsideWikiDescGroupAvatarItemMono> _spawnedAvatarItems = new List<UIOutsideWikiDescGroupAvatarItemMono>();
// 返回 false 表示该 DescItem 在当前条目下没有可显示内容,调用方应销毁此 group。
public bool SetContent(WikiItem owner, DescItem descItem)
@ -92,8 +93,9 @@ namespace TH1_UI.View.Outside.WikiSub
SetActiveSafe(UnitSkillGroup, false);
SetActiveSafe(HeroUpgradeGroup, false);
SetActiveSafe(CommonGridItemDescGroup, false);
SetActiveSafe(PlayerTechPoolGroup, false);
SetActiveSafe(CommonGridAvatarItemDescGroup, false);
ClearGridItems();
ClearAvatarItems();
switch (descItem.DescType)
{
@ -111,23 +113,39 @@ namespace TH1_UI.View.Outside.WikiSub
return true;
case WikiDescType.PreTech:
if (!ApplyPreTech(owner)) return false;
SetActiveSafe(BaseDescGroup, true);
SetActiveSafe(CommonGridItemDescGroup, true);
return true;
case WikiDescType.TechLock:
if (!ApplyTechLock(owner)) return false;
SetActiveSafe(CommonGridItemDescGroup, true);
return true;
case WikiDescType.PlayerTechPool:
if (!ApplyPlayerTechPool(owner)) return false;
SetActiveSafe(PlayerTechPoolGroup, true);
case WikiDescType.BelongTech:
if (!ApplyBelongTech(owner)) return false;
SetActiveSafe(CommonGridItemDescGroup, true);
return true;
case WikiDescType.Level1Tech:
if (!ApplyLevelTech(owner, 1)) return false;
SetActiveSafe(CommonGridItemDescGroup, true);
return true;
case WikiDescType.Level2Tech:
if (!ApplyLevelTech(owner, 2)) return false;
SetActiveSafe(CommonGridItemDescGroup, true);
return true;
case WikiDescType.Level3Tech:
if (!ApplyLevelTech(owner, 3)) return false;
SetActiveSafe(CommonGridItemDescGroup, true);
return true;
case WikiDescType.HasTechAtom:
if (!ApplyHasTechAtom(owner)) return false;
SetActiveSafe(BaseDescGroup, true);
SetActiveSafe(CommonGridItemDescGroup, true);
return true;
case WikiDescType.TechBelongEmpire:
if (!ApplyTechBelongEmpire(owner)) return false;
SetActiveSafe(CommonGridAvatarItemDescGroup, true);
return true;
case WikiDescType.HasInitTechAtom:
if (!ApplyHasInitTechAtom(owner)) return false;
SetActiveSafe(BaseDescGroup, true);
SetActiveSafe(CommonGridItemDescGroup, true);
return true;
default:
SetActiveSafe(BaseDescGroup, true);
@ -154,16 +172,14 @@ namespace TH1_UI.View.Outside.WikiSub
if (TitleText != null) { ResetMultilingual(TitleText); TitleText.text = string.Empty; }
if (DescText != null) { ResetMultilingual(DescText); DescText.text = string.Empty; }
if (HeroUpgradeDescText != null) { ResetMultilingual(HeroUpgradeDescText); HeroUpgradeDescText.text = string.Empty; }
if (PlayerTechPoolLv1Text != null) { ResetMultilingual(PlayerTechPoolLv1Text); PlayerTechPoolLv1Text.text = string.Empty; }
if (PlayerTechPoolLv2Text != null) { ResetMultilingual(PlayerTechPoolLv2Text); PlayerTechPoolLv2Text.text = string.Empty; }
if (PlayerTechPoolLv3Text != null) { ResetMultilingual(PlayerTechPoolLv3Text); PlayerTechPoolLv3Text.text = string.Empty; }
ClearSkillCircles();
ClearGridItems();
ClearAvatarItems();
SetActiveSafe(UnitInfoGroup, false);
SetActiveSafe(UnitSkillGroup, false);
SetActiveSafe(HeroUpgradeGroup, false);
SetActiveSafe(CommonGridItemDescGroup, false);
SetActiveSafe(PlayerTechPoolGroup, false);
SetActiveSafe(CommonGridAvatarItemDescGroup, false);
SetActiveSafe(BaseDescGroup, true);
}
@ -192,42 +208,32 @@ namespace TH1_UI.View.Outside.WikiSub
}
}
// ---------- PreTech前置科技列表逗号拼接 ----------
// 走 BaseDescGroup 展示DescText 内容为 owner.TechType 对应 TechInfo.FatherTechList
// 中每个 father 的 TechName 多语言文本,用 ", " 拼接。
// 返回 false 表示无可显示前置(拿不到 techInfo / 列表空 / 全部解析失败)
// ---------- PreTech前置科技列表 ----------
// 走 CommonGridItemDescGroup/GridGroup每个 FatherTech 都 spawn 一个 GridItem
// 文字 = TechName点击 wikiId = WikiId.Encode(WikiSource.Tech, techType)。
private bool ApplyPreTech(WikiItem owner)
{
if (DescText == null) return false;
ResetMultilingual(DescText);
DescText.text = string.Empty;
ClearGridItems();
if (owner == null) return false;
if (GridGroup == null || GridItemPrefab == null) return false;
var techAssets = Table.Instance?.TechDataAssets;
if (techAssets == null) return false;
if (!techAssets.GetTechInfo(owner.TechType, out var techInfo) || techInfo == null) return false;
var fathers = techInfo.FatherTechList;
if (fathers == null || fathers.Count == 0) return false;
var sb = new System.Text.StringBuilder();
int spawned = 0;
for (int i = 0; i < fathers.Count; i++)
{
if (!techAssets.GetTechInfo(fathers[i], out var fatherInfo) || fatherInfo == null) continue;
var key = fatherInfo.TechName;
if (string.IsNullOrEmpty(key)) continue;
if (string.IsNullOrEmpty(fatherInfo.TechName)) continue;
string text = key;
if (uint.TryParse(key, out _))
text = MultilingualManager.Instance.GetMultilingualText(key);
if (string.IsNullOrEmpty(text)) continue;
if (sb.Length > 0) sb.Append(", ");
sb.Append(text);
uint wikiId = WikiId.Encode(WikiSource.Tech, (uint)fathers[i]);
SpawnGridItem(fatherInfo.TechName, wikiId);
spawned++;
}
if (sb.Length == 0) return false;
DescText.text = sb.ToString();
return true;
return spawned > 0;
}
// ---------- TechLock解锁此 Action 的 TechAtom每个生成一个 GridItem ----------
@ -274,6 +280,36 @@ namespace TH1_UI.View.Outside.WikiSub
return spawned > 0;
}
// ---------- BelongTech该 TechAtom 归属的 Tech 列表) ----------
// 走 CommonGridItemDescGroup/GridGroup遍历 TechList找到 TechAtomList 包含
// owner.TechAtomKey 的 Tech每个 spawn 一个 GridItem文字=TechName
// 点击 wikiId=WikiId.Encode(WikiSource.Tech, techType))。
private bool ApplyBelongTech(WikiItem owner)
{
ClearGridItems();
if (owner == null) return false;
if (GridGroup == null || GridItemPrefab == null) return false;
var techAssets = Table.Instance?.TechDataAssets;
if (techAssets == null) return false;
var techList = techAssets.TechList;
if (techList == null) return false;
int spawned = 0;
for (int i = 0; i < techList.Count; i++)
{
var tech = techList[i];
if (tech == null || tech.TechAtomList == null) continue;
if (!tech.TechAtomList.Contains(owner.TechAtomKey)) continue;
if (string.IsNullOrEmpty(tech.TechName)) continue;
uint wikiId = WikiId.Encode(WikiSource.Tech, (uint)tech.TechType);
SpawnGridItem(tech.TechName, wikiId);
spawned++;
}
return spawned > 0;
}
private void SpawnGridItem(string text, uint wikiId)
{
var item = Instantiate(GridItemPrefab, GridGroup);
@ -282,6 +318,14 @@ namespace TH1_UI.View.Outside.WikiSub
_spawnedGridItems.Add(item);
}
private void SpawnAvatarItem(Sprite avatar, uint wikiId)
{
var item = Instantiate(AvatarItemPrefab, AvatarGridGroup);
item.transform.localScale = Vector3.one;
item.SetContent(avatar, wikiId);
_spawnedAvatarItems.Add(item);
}
private void ClearGridItems()
{
for (int i = 0; i < _spawnedGridItems.Count; i++)
@ -294,102 +338,151 @@ namespace TH1_UI.View.Outside.WikiSub
_spawnedGridItems.Clear();
// GridGroup 内 prefab 自带的占位子节点也一并清掉,避免和运行时 spawn 的混在一起
if (GridGroup != null)
ClearChildren(GridGroup);
}
private void ClearAvatarItems()
{
for (int i = 0; i < _spawnedAvatarItems.Count; i++)
{
for (int i = GridGroup.childCount - 1; i >= 0; i--)
{
var child = GridGroup.GetChild(i);
if (child == null) continue;
child.SetParent(null, false);
Destroy(child.gameObject);
}
var it = _spawnedAvatarItems[i];
if (it == null) continue;
if (it.transform != null) it.transform.SetParent(null, false);
Destroy(it.gameObject);
}
_spawnedAvatarItems.Clear();
// 同样清理 AvatarGridGroup 下的 prefab 占位子节点
ClearChildren(AvatarGridGroup);
}
private static void ClearChildren(Transform parent)
{
if (parent == null) return;
for (int i = parent.childCount - 1; i >= 0; i--)
{
var child = parent.GetChild(i);
if (child == null) continue;
child.SetParent(null, false);
Destroy(child.gameObject);
}
}
// ---------- PlayerTechPoolForce 拥有的 TechPool 按 CostLevel 拆 3 段) ----------
// 返回 false 表示该 Force 没有 TechPool 内容
private bool ApplyPlayerTechPool(WikiItem owner)
// ---------- LevelXTechForce 的 TechPool 中指定 CostLevel 的 Tech 列表) ----------
// 走 CommonGridItemDescGroup/GridGroup遍历 owner 对应 PlayerInfo.TechPool
// 取 CostLevel == costLevel 的 Tech每个 spawn 一个 GridItem
// (文字 = TechName点击 wikiId = WikiId.Encode(WikiSource.Tech, techType))。
private bool ApplyLevelTech(WikiItem owner, int costLevel)
{
if (PlayerTechPoolLv1Text != null) { ResetMultilingual(PlayerTechPoolLv1Text); PlayerTechPoolLv1Text.text = string.Empty; }
if (PlayerTechPoolLv2Text != null) { ResetMultilingual(PlayerTechPoolLv2Text); PlayerTechPoolLv2Text.text = string.Empty; }
if (PlayerTechPoolLv3Text != null) { ResetMultilingual(PlayerTechPoolLv3Text); PlayerTechPoolLv3Text.text = string.Empty; }
ClearGridItems();
if (owner == null) return false;
if (GridGroup == null || GridItemPrefab == null) return false;
if (!TryGetForcePlayerInfo(owner.ForceId, out var playerInfo)) return false;
if (playerInfo.TechPool == null || playerInfo.TechPool.Count == 0) return false;
var techAssets = Table.Instance?.TechDataAssets;
if (techAssets == null) return false;
var sbLv1 = new System.Text.StringBuilder();
var sbLv2 = new System.Text.StringBuilder();
var sbLv3 = new System.Text.StringBuilder();
int spawned = 0;
for (int i = 0; i < playerInfo.TechPool.Count; i++)
{
if (!techAssets.GetTechInfo(playerInfo.TechPool[i], out var techInfo) || techInfo == null) continue;
string text = ResolveMultilingual(techInfo.TechName);
if (string.IsNullOrEmpty(text)) continue;
var techType = playerInfo.TechPool[i];
if (!techAssets.GetTechInfo(techType, out var techInfo) || techInfo == null) continue;
if (techInfo.CostLevel != costLevel) continue;
if (string.IsNullOrEmpty(techInfo.TechName)) continue;
System.Text.StringBuilder target = null;
switch (techInfo.CostLevel)
{
case 1: target = sbLv1; break;
case 2: target = sbLv2; break;
case 3: target = sbLv3; break;
}
if (target == null) continue;
if (target.Length > 0) target.Append(", ");
target.Append(text);
uint wikiId = WikiId.Encode(WikiSource.Tech, (uint)techType);
SpawnGridItem(techInfo.TechName, wikiId);
spawned++;
}
bool any = sbLv1.Length > 0 || sbLv2.Length > 0 || sbLv3.Length > 0;
if (!any) return false;
if (PlayerTechPoolLv1Text != null) PlayerTechPoolLv1Text.text = sbLv1.ToString();
if (PlayerTechPoolLv2Text != null) PlayerTechPoolLv2Text.text = sbLv2.ToString();
if (PlayerTechPoolLv3Text != null) PlayerTechPoolLv3Text.text = sbLv3.ToString();
return true;
return spawned > 0;
}
// ---------- HasTechAtomTech 拥有的 TechAtom 名称列表) ----------
// 复用 BaseDescGroup 的 DescText
// ---------- HasTechAtomTech 拥有的 TechAtom 列表) ----------
// 走 CommonGridItemDescGroup/GridGroup每个 TechAtom 都 spawn 一个 GridItem
// 文字 = TechAtomName点击 wikiId = WikiId.Encode(WikiSource.TechAtom, TechAtom)。
private bool ApplyHasTechAtom(WikiItem owner)
{
if (DescText == null) return false;
ResetMultilingual(DescText);
DescText.text = string.Empty;
ClearGridItems();
if (owner == null) return false;
if (GridGroup == null || GridItemPrefab == null) return false;
var techAssets = Table.Instance?.TechDataAssets;
if (techAssets == null) return false;
if (!techAssets.GetTechInfo(owner.TechType, out var techInfo) || techInfo == null) return false;
if (techInfo.TechAtomList == null || techInfo.TechAtomList.Count == 0) return false;
string joined = JoinTechAtomNames(techInfo.TechAtomList);
if (string.IsNullOrEmpty(joined)) return false;
int spawned = 0;
for (int i = 0; i < techInfo.TechAtomList.Count; i++)
{
var atom = techInfo.TechAtomList[i];
if (!techAssets.GetTechAtomInfo(atom, out var atomInfo) || atomInfo == null) continue;
if (string.IsNullOrEmpty(atomInfo.TechAtomName)) continue;
DescText.text = joined;
return true;
uint wikiId = WikiId.Encode(WikiSource.TechAtom, (uint)atom);
SpawnGridItem(atomInfo.TechAtomName, wikiId);
spawned++;
}
return spawned > 0;
}
// ---------- HasInitTechAtomForce 拥有的初始 TechAtom 名称列表) ----------
// 复用 BaseDescGroup 的 DescText
// ---------- TechBelongEmpire拥有此 Tech 的 Empire 列表) ----------
// 走 CommonGridItemDescGroup/GridGroup遍历 PlayerDataListTechPool 包含
// owner.TechType 的 Player每个 spawn 一个 AvatarItem图标 = LeaderAvatar
// 点击 wikiId = WikiId.Encode(WikiSource.Player, list index),与 BuildFromPlayer 对齐)。
private bool ApplyTechBelongEmpire(WikiItem owner)
{
ClearAvatarItems();
if (owner == null) return false;
if (AvatarGridGroup == null || AvatarItemPrefab == null) return false;
var assets = Table.Instance?.PlayerDataAssets;
if (assets == null) return false;
var list = assets.PlayerDataList;
if (list == null) return false;
int spawned = 0;
for (int i = 0; i < list.Count; i++)
{
var info = list[i];
if (info == null) continue;
if (string.IsNullOrEmpty(info.ForceName)) continue;
if (info.TechPool == null) continue;
if (!info.TechPool.Contains(owner.TechType)) continue;
uint wikiId = WikiId.Encode(WikiSource.Player, (uint)i);
SpawnAvatarItem(info.LeaderAvatar, wikiId);
spawned++;
}
return spawned > 0;
}
// ---------- HasInitTechAtomForce 拥有的初始 TechAtom 列表) ----------
// 走 CommonGridItemDescGroup/GridGroup每个 TechAtom 都 spawn 一个 GridItem
// 文字 = TechAtomName点击 wikiId = WikiId.Encode(WikiSource.TechAtom, TechAtom)。
private bool ApplyHasInitTechAtom(WikiItem owner)
{
if (DescText == null) return false;
ResetMultilingual(DescText);
DescText.text = string.Empty;
ClearGridItems();
if (owner == null) return false;
if (GridGroup == null || GridItemPrefab == null) return false;
if (!TryGetForcePlayerInfo(owner.ForceId, out var playerInfo)) return false;
if (playerInfo.TechAtomList == null || playerInfo.TechAtomList.Count == 0) return false;
string joined = JoinTechAtomNames(playerInfo.TechAtomList);
if (string.IsNullOrEmpty(joined)) return false;
var techAssets = Table.Instance?.TechDataAssets;
if (techAssets == null) return false;
DescText.text = joined;
return true;
int spawned = 0;
for (int i = 0; i < playerInfo.TechAtomList.Count; i++)
{
var atom = playerInfo.TechAtomList[i];
if (!techAssets.GetTechAtomInfo(atom, out var atomInfo) || atomInfo == null) continue;
if (string.IsNullOrEmpty(atomInfo.TechAtomName)) continue;
uint wikiId = WikiId.Encode(WikiSource.TechAtom, (uint)atom);
SpawnGridItem(atomInfo.TechAtomName, wikiId);
spawned++;
}
return spawned > 0;
}
// 在 PlayerDataAssets.PlayerDataList 中按 ForceId 找到第一个匹配的 PlayerInfo
@ -476,43 +569,18 @@ namespace TH1_UI.View.Outside.WikiSub
displaySkills.Sort((a, b) => SkillSortRank(a.viewType).CompareTo(SkillSortRank(b.viewType)));
uint wikiIdBase = 0;
for (int i = 0; i < displaySkills.Count; i++)
{
var go = Instantiate(SkillCirclePrefab, SkillCircleArea);
go.transform.localScale = Vector3.one;
go.transform.localPosition = Vector3.zero;
_spawnedSkillCircles.Add(go);
var mono = Instantiate(SkillCirclePrefab, SkillCircleArea);
mono.transform.localScale = Vector3.one;
mono.transform.localPosition = Vector3.zero;
_spawnedSkillCircles.Add(mono);
var mono = go.GetComponent<UIInfoCommonBaseSkillCircleMono>();
if (mono == null) continue;
ApplyStaticSkillCircle(mono, displaySkills[i].skill, displaySkills[i].viewType, owner.UnitFullType);
}
}
// 静态化版本:不依赖 SkillBase仅用 SkillType + UnitFullType
// 等价于 UIInfoCommonBaseSkillCircleMono.SetContent 的"无技能实例"分支
private static void ApplyStaticSkillCircle(UIInfoCommonBaseSkillCircleMono mono,
SkillType skillType, SkillViewType viewType, UnitFullType unitFullType)
{
var skillAssets = Table.Instance?.SkillDataAssets;
if (skillAssets == null) return;
if (mono.SkillIcon != null && skillAssets.GetSkillIcon(skillType, unitFullType, out var spr))
mono.SkillIcon.sprite = spr;
if (mono.SkillIconBG != null)
mono.SkillIconBG.color = skillAssets.GetBGColor(viewType, false);
if (mono.SkillLevelArea != null) mono.SkillLevelArea.SetActive(false);
if (mono.SkillTimeArea != null) mono.SkillTimeArea.SetActive(false);
if (mono.BanImage != null) mono.BanImage.gameObject.SetActive(false);
if (mono.HintTrigger != null && mono.HintTrigger.DataProvider != null)
{
mono.HintTrigger.DataProvider.HintDataType = global::UI.HintUI.HintDataType.SkillHintData;
mono.HintTrigger.DataProvider.SkillTypeData = skillType;
mono.HintTrigger.DataProvider.UnitFullType = unitFullType;
mono.HintTrigger.DataProvider.SkillParam = null;
wikiIdBase = Table.Instance?.WikiData != null
? Table.Instance.WikiData.FindWikiIdBySkillType(displaySkills[i].skill)
: 0;
mono.SetContent(displaySkills[i].skill, displaySkills[i].viewType, owner.UnitFullType, wikiIdBase);
}
}
@ -530,10 +598,10 @@ namespace TH1_UI.View.Outside.WikiSub
{
for (int i = 0; i < _spawnedSkillCircles.Count; i++)
{
var go = _spawnedSkillCircles[i];
if (go == null) continue;
if (go.transform != null) go.transform.SetParent(null, false);
Destroy(go);
var mono = _spawnedSkillCircles[i];
if (mono == null) continue;
if (mono.transform != null) mono.transform.SetParent(null, false);
Destroy(mono.gameObject);
}
_spawnedSkillCircles.Clear();
}