V0.7.4b
This commit is contained in:
parent
579580624f
commit
aac3eb9254
@ -214,7 +214,7 @@
|
||||
"name": "博丽灵梦",
|
||||
"subtitle": "帝国的御札巫女",
|
||||
"desc": "临时图鉴文案。可向友方施加<color=green>博丽加护</color>抵消伤害,并以<color=red>退治</color>标记敌方英雄,通过连动攻击与御札效果获得额外收益。",
|
||||
"diag": "赛事的委托吗?只要酬劳到位,退治工作就交给我吧。",
|
||||
"diag": "暂未设置",
|
||||
"english_name": "REIMU HAKUREI",
|
||||
"achieve_pre_id": 0
|
||||
},
|
||||
@ -224,7 +224,7 @@
|
||||
"name": "宇佐见堇子",
|
||||
"subtitle": "帝国的灵异使者",
|
||||
"desc": "临时图鉴文案。可在战场上发射不同地形的灵异珠,影响附近单位的移动、攻击、防御与承伤规则。",
|
||||
"diag": "平原、森林、海面,这些地方都很适合收集灵异现象呢。",
|
||||
"diag": "暂未设置",
|
||||
"english_name": "SUMIREKO USAMI",
|
||||
"achieve_pre_id": 0
|
||||
},
|
||||
@ -234,7 +234,7 @@
|
||||
"name": "茨木华扇",
|
||||
"subtitle": "帝国的兽引仙人",
|
||||
"desc": "临时图鉴文案。可设置全场唯一的<color=green>兽引</color>作为战术支点,通过召回、减伤、回复与传送能力支援战线。",
|
||||
"diag": "兽引一旦放置,就要想好这条路要把我们带到哪里。",
|
||||
"diag": "暂未设置",
|
||||
"english_name": "KASEN IBARAKI",
|
||||
"achieve_pre_id": 0
|
||||
},
|
||||
@ -244,7 +244,7 @@
|
||||
"name": "高丽野阿吽",
|
||||
"subtitle": "帝国的狛犬守卫",
|
||||
"desc": "临时图鉴文案。攻击后可选择逃脱或石化,升级后可生成双身并共享生命,在防守与承伤中保护附近英雄。",
|
||||
"diag": "阿与吽同在的地方,就是需要守护的门口。",
|
||||
"diag": "暂未设置",
|
||||
"english_name": "AUNN KOMANO",
|
||||
"achieve_pre_id": 0
|
||||
},
|
||||
@ -254,7 +254,7 @@
|
||||
"name": "伊吹萃香",
|
||||
"subtitle": "帝国的鬼族怪力",
|
||||
"desc": "临时图鉴文案。移动后生成小萃香,通过附着叠层进入大萃香或巨大萃香形态,以投掷和从天而降改写正面战场。",
|
||||
"diag": "哎呀,人多一点才热闹嘛。如果我一个不够,那就多来几个我好了。",
|
||||
"diag": "暂未设置",
|
||||
"english_name": "SUIKA IBUKI",
|
||||
"achieve_pre_id": 0
|
||||
},
|
||||
|
||||
@ -159,35 +159,35 @@ Do not edit this file by hand; rerun `scripts/extract_dialogue_corpus.py` after
|
||||
- GiantType: `21`
|
||||
- Subtitle: 帝国的御札巫女
|
||||
- TH1 setting: 临时图鉴文案。可向友方施加<color=green>博丽加护</color>抵消伤害,并以<color=red>退治</color>标记敌方英雄,通过连动攻击与御札效果获得额外收益。
|
||||
- Dialogue: 赛事的委托吗?只要酬劳到位,退治工作就交给我吧。
|
||||
- Dialogue: 暂未设置
|
||||
|
||||
### 宇佐见堇子 (NorwaySumireko)
|
||||
|
||||
- GiantType: `22`
|
||||
- Subtitle: 帝国的灵异使者
|
||||
- TH1 setting: 临时图鉴文案。可在战场上发射不同地形的灵异珠,影响附近单位的移动、攻击、防御与承伤规则。
|
||||
- Dialogue: 平原、森林、海面,这些地方都很适合收集灵异现象呢。
|
||||
- Dialogue: 暂未设置
|
||||
|
||||
### 茨木华扇 (NorwayKasen)
|
||||
|
||||
- GiantType: `23`
|
||||
- Subtitle: 帝国的兽引仙人
|
||||
- TH1 setting: 临时图鉴文案。可设置全场唯一的<color=green>兽引</color>作为战术支点,通过召回、减伤、回复与传送能力支援战线。
|
||||
- Dialogue: 兽引一旦放置,就要想好这条路要把我们带到哪里。
|
||||
- Dialogue: 暂未设置
|
||||
|
||||
### 高丽野阿吽 (NorwayAunn)
|
||||
|
||||
- GiantType: `24`
|
||||
- Subtitle: 帝国的狛犬守卫
|
||||
- TH1 setting: 临时图鉴文案。攻击后可选择逃脱或石化,升级后可生成双身并共享生命,在防守与承伤中保护附近英雄。
|
||||
- Dialogue: 阿与吽同在的地方,就是需要守护的门口。
|
||||
- Dialogue: 暂未设置
|
||||
|
||||
### 伊吹萃香 (NorwaySuika)
|
||||
|
||||
- GiantType: `25`
|
||||
- Subtitle: 帝国的鬼族怪力
|
||||
- TH1 setting: 临时图鉴文案。移动后生成小萃香,通过附着叠层进入大萃香或巨大萃香形态,以投掷和从天而降改写正面战场。
|
||||
- Dialogue: 哎呀,人多一点才热闹嘛。如果我一个不够,那就多来几个我好了。
|
||||
- Dialogue: 暂未设置
|
||||
|
||||
### 圣白莲(木偶) (BritishByakuren)
|
||||
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -5154,7 +5154,7 @@ MonoBehaviour:
|
||||
TechDesc:
|
||||
NeedLockDesc: 0
|
||||
LockDesc:
|
||||
Icon: {fileID: 21300000, guid: ae88a6e6387f26640aafefa0f8f13cc6, type: 3}
|
||||
Icon: {fileID: 21300000, guid: 15241810dc2b8bd4d9fab1bf4ae0ca18, type: 3}
|
||||
IconViewSizeType: 2
|
||||
VarientIcon: 0
|
||||
IconList: []
|
||||
@ -6084,7 +6084,7 @@ MonoBehaviour:
|
||||
AIParamType: 0
|
||||
CultureCardType: 0
|
||||
ActionName: "\u6218\u4E89\u53F7\u89D2"
|
||||
Desc: "\u82B1\u8D39**<\u91D1\u5E01>**\uFF0C\u7ACB\u5373\u83B7\u5F971\u70B9**<\u653B\u51FB\u884C\u52A8\u70B9>**\uFF0C\u5E76\u83B7\u5F97**<\u72C2\u66B4>**\u72B6\u6001\uFF0C\u6301\u7EED\u81F3\u672C\u56DE\u5408\u7ED3\u675F\u3002"
|
||||
Desc: "\u82B1\u8D39**<\u91D1\u5E01>**\uFF0C\u7ACB\u5373\u83B7\u5F971\u70B9**<\u653B\u51FB\u884C\u52A8\u70B9>**\uFF0C\u5E76\u83B7\u5F97**<\u72C2\u66B4>**\u72B6\u6001\uFF0C\u6301\u7EED\u81F3\u672C\u56DE\u5408\u7ED3\u675F\u3002\u6BCF\u56DE\u5408\u4EC5\u80FD\u4F7F\u75281\u6B21"
|
||||
NeedTechDesc: 0
|
||||
TechDesc:
|
||||
NeedLockDesc: 0
|
||||
@ -10249,7 +10249,7 @@ MonoBehaviour:
|
||||
AIParamType: 0
|
||||
CultureCardType: 0
|
||||
ActionName: "\u8981\u6C42\u8D21\u91D1"
|
||||
Desc: "向对方发起贡金要求,数额为对方下回合收入的20%。若对方拒绝支付,下回合对其**<劫掠>**收益翻倍。"
|
||||
Desc: "\u5411\u5BF9\u65B9\u53D1\u8D77\u8D21\u91D1\u8981\u6C42\uFF0820%\u7684\u56DE\u5408\u6536\u5165\uFF09\u3002\u82E5\u5BF9\u65B9\u62D2\u7EDD\u652F\u4ED8\uFF0C\u4E0B\u56DE\u5408\u5BF9\u5176**<\u52AB\u63A0>**\u6536\u76CA\u7FFB\u500D\u3002\u53D1\u8D77\u8D39\u7528\u4E3A\u6211\u65B9\u57CE\u5E02\u6570\u91CF*3**<\u91D1\u5E01>**\u3002"
|
||||
NeedTechDesc: 1
|
||||
TechDesc: "\u5411\u67D0\u4E2A\u5E1D\u56FD\u53D1\u8D77\u52D2\u7D22\u3002\u82E5\u5BF9\u65B9\u4E0D\u652F\u4ED8\uFF0C\u4E0B\u56DE\u5408\u6240\u6709\u5355\u4F4D\u62A2\u52AB\u6536\u76CA\u7FFB\u500D\u3002"
|
||||
NeedLockDesc: 0
|
||||
@ -10258,7 +10258,7 @@ MonoBehaviour:
|
||||
IconViewSizeType: 2
|
||||
VarientIcon: 0
|
||||
IconList: []
|
||||
Cost: 0
|
||||
Cost: 3
|
||||
CityExp: 0
|
||||
NoNeedTech: 0
|
||||
SpriteSize: {x: 40, y: 40}
|
||||
|
||||
@ -77,6 +77,19 @@ MonoBehaviour:
|
||||
Desc:
|
||||
HasLevel: 0
|
||||
LevelSprite: []
|
||||
- IgnoreCivId: 0
|
||||
IgnoreForceId: 0
|
||||
IsGridSpType: 0
|
||||
GridSpType: 0
|
||||
CivId: 4
|
||||
ForceId: 4
|
||||
OnlyCarryGiant: 0
|
||||
CarryGiantType: 0
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
Name:
|
||||
Desc:
|
||||
HasLevel: 0
|
||||
LevelSprite: []
|
||||
RequiredTechs:
|
||||
LimitedEmpires: []
|
||||
PrerequisiteCards: 0f000000
|
||||
@ -148,6 +161,19 @@ MonoBehaviour:
|
||||
Desc:
|
||||
HasLevel: 0
|
||||
LevelSprite: []
|
||||
- IgnoreCivId: 0
|
||||
IgnoreForceId: 0
|
||||
IsGridSpType: 0
|
||||
GridSpType: 0
|
||||
CivId: 4
|
||||
ForceId: 4
|
||||
OnlyCarryGiant: 0
|
||||
CarryGiantType: 0
|
||||
Sprite: {fileID: 21300000, guid: c74d72e70b64494ca571bfdf1ff71b33, type: 3}
|
||||
Name:
|
||||
Desc:
|
||||
HasLevel: 0
|
||||
LevelSprite: []
|
||||
RequiredTechs:
|
||||
LimitedEmpires: []
|
||||
PrerequisiteCards: 0100000010000000
|
||||
|
||||
@ -661,62 +661,62 @@ MonoBehaviour:
|
||||
HeroIllustration: {fileID: 21300000, guid: 1b95776d20b35034682cec20dd8fd2e2, type: 3}
|
||||
HeroAvatar: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
|
||||
TaskList:
|
||||
- taskContentType: 23
|
||||
- taskContentType: 13
|
||||
Param: 25
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
Desc: "\u5E1D\u56FD\u7D2F\u8BA1\u83B7\u5F97**<{param}/{param}>**\u91D1\u5E01"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 23
|
||||
Param: 60
|
||||
- taskContentType: 1
|
||||
Param: 30
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 23
|
||||
Param: 120
|
||||
- taskContentType: 1
|
||||
Param: 70
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- GiantType: 22
|
||||
HeroIllustration: {fileID: 21300000, guid: 98ea1a5d946041e0a46bc7f04a73947f, type: 3}
|
||||
HeroAvatar: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
TaskList:
|
||||
- taskContentType: 23
|
||||
Param: 25
|
||||
- taskContentType: 5
|
||||
Param: 40
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
Desc: "\u63A2\u7D22**<{param}/{param}>**\u5757\u8FF7\u96FE"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 23
|
||||
Param: 60
|
||||
- taskContentType: 24
|
||||
Param: 4
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
Desc: "\u8BBE\u7F6E**<{param}/{param}>**\u4E2A\u7075\u5F02\u73E0"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 23
|
||||
Param: 120
|
||||
- taskContentType: 24
|
||||
Param: 8
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210\u6216\u627F\u53D7**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
Desc: "\u8BBE\u7F6E**<{param}/{param}>**\u4E2A\u7075\u5F02\u73E0"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- GiantType: 23
|
||||
|
||||
@ -197,7 +197,7 @@ MonoBehaviour:
|
||||
Name: "\u535A\u4E3D\u7075\u68A6"
|
||||
SubTitle: "\u5E1D\u56FD\u7684\u5FA1\u672D\u5DEB\u5973"
|
||||
Desc: "\u4E34\u65F6\u56FE\u9274\u6587\u6848\u3002\u53EF\u5411\u53CB\u65B9\u65BD\u52A0<color=green>\u535A\u4E3D\u52A0\u62A4</color>\u62B5\u6D88\u4F24\u5BB3\uFF0C\u5E76\u4EE5<color=red>\u9000\u6CBB</color>\u6807\u8BB0\u654C\u65B9\u82F1\u96C4\uFF0C\u901A\u8FC7\u8FDE\u52A8\u653B\u51FB\u4E0E\u5FA1\u672D\u6548\u679C\u83B7\u5F97\u989D\u5916\u6536\u76CA\u3002"
|
||||
Diag: "\u8D5B\u4E8B\u7684\u59D4\u6258\u5417\uFF1F\u53EA\u8981\u916C\u52B3\u5230\u4F4D\uFF0C\u9000\u6CBB\u5DE5\u4F5C\u5C31\u4EA4\u7ED9\u6211\u5427\u3002"
|
||||
Diag: "\u6682\u672A\u8BBE\u7F6E"
|
||||
EnglishName: REIMU HAKUREI
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: 1b95776d20b35034682cec20dd8fd2e2, type: 3}
|
||||
@ -206,7 +206,7 @@ MonoBehaviour:
|
||||
Name: "\u5B87\u4F50\u89C1\u5807\u5B50"
|
||||
SubTitle: "\u5E1D\u56FD\u7684\u7075\u5F02\u4F7F\u8005"
|
||||
Desc: "\u4E34\u65F6\u56FE\u9274\u6587\u6848\u3002\u53EF\u5728\u6218\u573A\u4E0A\u53D1\u5C04\u4E0D\u540C\u5730\u5F62\u7684\u7075\u5F02\u73E0\uFF0C\u5F71\u54CD\u9644\u8FD1\u5355\u4F4D\u7684\u79FB\u52A8\u3001\u653B\u51FB\u3001\u9632\u5FA1\u4E0E\u627F\u4F24\u89C4\u5219\u3002"
|
||||
Diag: "\u5E73\u539F\u3001\u68EE\u6797\u3001\u6D77\u9762\uFF0C\u8FD9\u4E9B\u5730\u65B9\u90FD\u5F88\u9002\u5408\u6536\u96C6\u7075\u5F02\u73B0\u8C61\u5462\u3002"
|
||||
Diag: "\u6682\u672A\u8BBE\u7F6E"
|
||||
EnglishName: SUMIREKO USAMI
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: 98ea1a5d946041e0a46bc7f04a73947f, type: 3}
|
||||
@ -215,7 +215,7 @@ MonoBehaviour:
|
||||
Name: "\u8328\u6728\u534E\u6247"
|
||||
SubTitle: "\u5E1D\u56FD\u7684\u517D\u5F15\u4ED9\u4EBA"
|
||||
Desc: "\u4E34\u65F6\u56FE\u9274\u6587\u6848\u3002\u53EF\u8BBE\u7F6E\u5168\u573A\u552F\u4E00\u7684<color=green>\u517D\u5F15</color>\u4F5C\u4E3A\u6218\u672F\u652F\u70B9\uFF0C\u901A\u8FC7\u53EC\u56DE\u3001\u51CF\u4F24\u3001\u56DE\u590D\u4E0E\u4F20\u9001\u80FD\u529B\u652F\u63F4\u6218\u7EBF\u3002"
|
||||
Diag: "\u517D\u5F15\u4E00\u65E6\u653E\u7F6E\uFF0C\u5C31\u8981\u60F3\u597D\u8FD9\u6761\u8DEF\u8981\u628A\u6211\u4EEC\u5E26\u5230\u54EA\u91CC\u3002"
|
||||
Diag: "\u6682\u672A\u8BBE\u7F6E"
|
||||
EnglishName: KASEN IBARAKI
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: d6686cb8912440a2ab25883148f1c342, type: 3}
|
||||
@ -224,7 +224,7 @@ MonoBehaviour:
|
||||
Name: "\u9AD8\u4E3D\u91CE\u963F\u543D"
|
||||
SubTitle: "\u5E1D\u56FD\u7684\u72DB\u72AC\u5B88\u536B"
|
||||
Desc: "\u4E34\u65F6\u56FE\u9274\u6587\u6848\u3002\u653B\u51FB\u540E\u53EF\u9009\u62E9\u9003\u8131\u6216\u77F3\u5316\uFF0C\u5347\u7EA7\u540E\u53EF\u751F\u6210\u53CC\u8EAB\u5E76\u5171\u4EAB\u751F\u547D\uFF0C\u5728\u9632\u5B88\u4E0E\u627F\u4F24\u4E2D\u4FDD\u62A4\u9644\u8FD1\u82F1\u96C4\u3002"
|
||||
Diag: "\u963F\u4E0E\u543D\u540C\u5728\u7684\u5730\u65B9\uFF0C\u5C31\u662F\u9700\u8981\u5B88\u62A4\u7684\u95E8\u53E3\u3002"
|
||||
Diag: "\u6682\u672A\u8BBE\u7F6E"
|
||||
EnglishName: AUNN KOMANO
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: bb4f6df6cddc46fb803f1188e2491c10, type: 3}
|
||||
@ -233,7 +233,7 @@ MonoBehaviour:
|
||||
Name: "\u4F0A\u5439\u8403\u9999"
|
||||
SubTitle: "\u5E1D\u56FD\u7684\u9B3C\u65CF\u602A\u529B"
|
||||
Desc: "\u4E34\u65F6\u56FE\u9274\u6587\u6848\u3002\u79FB\u52A8\u540E\u751F\u6210\u5C0F\u8403\u9999\uFF0C\u901A\u8FC7\u9644\u7740\u53E0\u5C42\u8FDB\u5165\u5927\u8403\u9999\u6216\u5DE8\u5927\u8403\u9999\u5F62\u6001\uFF0C\u4EE5\u6295\u63B7\u548C\u4ECE\u5929\u800C\u964D\u6539\u5199\u6B63\u9762\u6218\u573A\u3002"
|
||||
Diag: "\u54CE\u5440\uFF0C\u4EBA\u591A\u4E00\u70B9\u624D\u70ED\u95F9\u561B\u3002\u5982\u679C\u6211\u4E00\u4E2A\u4E0D\u591F\uFF0C\u90A3\u5C31\u591A\u6765\u51E0\u4E2A\u6211\u597D\u4E86\u3002"
|
||||
Diag: "\u6682\u672A\u8BBE\u7F6E"
|
||||
EnglishName: SUIKA IBUKI
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: 477ceacc14644cffb068239634480c82, type: 3}
|
||||
|
||||
@ -173,7 +173,7 @@ MonoBehaviour:
|
||||
FlagIcon: {fileID: 21300000, guid: 0f2d5390807f409a994d18a086d76b19, type: 3}
|
||||
Diff: 0
|
||||
TechAtomList: 6600000069000000670000006e000000
|
||||
EmpireDesc:
|
||||
EmpireDesc: "\u4ECE\u7EA6\u514B\u5230\u54E5\u672C\u54C8\u6839\uFF0C\u4ECE\u5965\u65AF\u9646\u5230\u6E29\u5F7B\u65AF\u7279\uFF0C\u5F81\u670D\u5317\u6D77\u7684\u8FBD\u9614\u7586\u57DF\uFF0C\u5982\u540C\u5236\u9738\u5E7B\u60F3\u4E61\u4E00\u822C\u6613\u5982\u53CD\u638C\u3002\u7EE7\u627F\u4E86\u5F81\u670D\u5DE8\u6D6A\u7684\u610F\u5FD7\uFF0C\u7075\u68A6\u5C06\u4EE5\u5DEB\u5973\u7684\u76F4\u89C9\u548C\u5F81\u670D\u8005\u7684\u94C1\u8155\uFF0C\u5C06\u6C47\u805A\u800C\u6765\u7684\u4FE1\u4EF0\u3001\u8D22\u5BCC\u4E0E\u6028\u5FF5\u7EDF\u7EDF\u585E\u8FDB\u5949\u7EB3\u7BB1\u4E2D\uFF0C\u8BA9\u535A\u4E3D\u4E4B\u540D\u5728\u74E6\u5C14\u54C8\u62C9\u6C38\u6052\u4F20\u5531\u3002"
|
||||
LeaderDesc: "\u61D2\u6563\u7684\u535A\u4E3D\u5DEB\u5973\u62BD\u5230\u4E86<color=blue>\u7EF4\u4EAC</color>\u5E1D\u56FD\u5361\uFF0C\u539F\u672C\u5979\u53EA\u662F\u5728\u795E\u793E\u91CC\u65E0\u7CBE\u6253\u91C7\u7684\u559D\u8336\uFF0C\u7ED3\u679C\u542C\u5230\u5956\u91D1\u91D1\u989D\u540E\u5F53\u573A\u5750\u76F4\u4E86\u3002\u5979\u52A0\u5165\u6BD4\u8D5B\u7684\u7406\u7531\u5F88\u7EAF\u7CB9\uFF1A\u5956\u91D1\uFF0C\u987A\u5E26\u9000\u6CBB\u53EF\u7591\u7684\u5BF9\u624B\u3002"
|
||||
StartChatBubble:
|
||||
- "\u9EBB\u70E6\u6B7B\u4E86\uFF0C\u5FEB\u70B9\u5F00\u59CB\u5FEB\u70B9\u7ED3\u675F\u3002"
|
||||
|
||||
@ -3752,7 +3752,7 @@ MonoBehaviour:
|
||||
ReserveCommonTransform: 1
|
||||
- SkillType: 288
|
||||
SkillViewType: 2
|
||||
SkillName: "\u7075\u5F02\u73E0"
|
||||
SkillName: "深秘投射"
|
||||
SkillDesc: "\u79FB\u52A8\u540E\u5411\u4E0D\u540C\u5730\u5F62\u53D1\u5C04**<\u7075\u5F02\u73E0>**\uFF0C\u968F\u7740\u7B49\u7EA7\u589E\u957F\u53EF\u4EE5\u53D1\u5C04**<\u632A\u5A01\u4E4B\u73E0>**\uFF0C**<\u4E39\u9EA6\u4E4B\u73E0>**\u4EE5\u53CA**<\u82F1\u683C\u5170\u4E4B\u73E0>**\u3002\u53EF\u5728**<\u7075\u5F02\u73E0>**\u9644\u8FD1\u4F20\u9001\u3002"
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
@ -3765,9 +3765,9 @@ MonoBehaviour:
|
||||
ReserveGiantUpgrade: 1
|
||||
ReserveCommonTransform: 1
|
||||
- SkillType: 289
|
||||
SkillViewType: 4
|
||||
SkillViewType: 1
|
||||
SkillName: "\u632A\u5A01\u4E4B\u73E0"
|
||||
SkillDesc: "\u5468\u56F41\u683C\u5185\u7684\u53CB\u65B9\u5355\u4F4D\uFF0C**<\u79FB\u52A8\u529B>**\u4E0E**<\u653B\u51FB\u529B>**\u4E92\u6362\u3002"
|
||||
SkillDesc: "可设置在**<深海>**与**<山脉>**中,周围1格内的友方单位,**<移动力>**与**<攻击力>**互换。"
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: a95cdede1f104514a3b05070c9c5d855, type: 3}
|
||||
@ -3779,9 +3779,9 @@ MonoBehaviour:
|
||||
ReserveGiantUpgrade: 1
|
||||
ReserveCommonTransform: 1
|
||||
- SkillType: 290
|
||||
SkillViewType: 2
|
||||
SkillViewType: 1
|
||||
SkillName: "\u4E39\u9EA6\u4E4B\u73E0"
|
||||
SkillDesc: "\u5468\u56F41\u683C\u5185\u7684\u53CB\u65B9\u5355\u4F4D\uFF0C**<\u9632\u5FA1\u529B>**\u4E0E**<\u653B\u51FB\u529B>**\u4E92\u6362\u3002"
|
||||
SkillDesc: "可设置在**<浅海>**与**<森林>**中,周围1格内的友方单位,**<防御力>**与**<攻击力>**互换。"
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: 0f6b9133d5ef4a3a9916e5d9311914d3, type: 3}
|
||||
@ -3793,7 +3793,7 @@ MonoBehaviour:
|
||||
ReserveGiantUpgrade: 1
|
||||
ReserveCommonTransform: 1
|
||||
- SkillType: 291
|
||||
SkillViewType: 2
|
||||
SkillViewType: 1
|
||||
SkillName: "\u82F1\u683C\u5170\u4E4B\u73E0"
|
||||
SkillDesc: "\u80FD\u591F\u4E3A\u5468\u56F41\u683C\u5185\u7684\u53CB\u65B9\u5355\u4F4D\u62B5\u63213\u6B21\u4F24\u5BB3\u3002"
|
||||
NotShow: 0
|
||||
@ -3809,7 +3809,7 @@ MonoBehaviour:
|
||||
- SkillType: 292
|
||||
SkillViewType: 2
|
||||
SkillName: "\u5F02\u4E16\u754C\u7684\u75AF\u72C2"
|
||||
SkillDesc: "\u7075\u5F02\u73E0\u53C2\u4E0E\u5C5E\u6027\u6570\u503C\u4E92\u6362\u65F6\uFF0C\u6CA1\u4E00\u9879\u5C5E\u6027\u5747\u53D6\u539F\u6570\u503C\u4E0E\u6362\u7B97\u503C\u7684\u6700\u5927\u503C\u3002"
|
||||
SkillDesc: "灵异珠参与属性数值互换时,每一项属性均取原数值与换算值的最大值。"
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: acf11aaa15ab4c5bae3654fcc6c3dd7c, type: 3}
|
||||
@ -4065,17 +4065,8 @@ MonoBehaviour:
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: c1262ff24c1847a3b0695c0471bfbdcf, type: 3}
|
||||
HasShowList: 1
|
||||
SkillShowList:
|
||||
- UnitFullType:
|
||||
UnitType: 53
|
||||
GiantType: 0
|
||||
UnitLevel: 0
|
||||
IgnoreUnitGiantType: 1
|
||||
IgnoreUnitLevel: 1
|
||||
Icon: {fileID: 0}
|
||||
SkillDesc: "\u79FB\u52A8\u65F6\u4E3A\u5468\u56F4\u53CB\u65B9\u6062\u590D2\u70B9\u751F\u547D\uFF1B\u53EF\u4E3A\u76F8\u90BB\u53CB\u65B9\u9644\u52A0\u6301\u7EED1\u56DE\u5408\u7684\u4FDD\u62A4\uFF0C\u4F7F\u5176\u53D7\u5230\u7684\u4F24\u5BB3\u5168\u90E8\u8F6C\u79FB\u7ED9\u5973\u6B66\u795E\uFF1B\u9644\u8FD1\u5DF1\u65B9\u5355\u4F4D\u6B7B\u4EA1\u65F6\u6062\u590D5\u70B9\u751F\u547D\uFF1B\u4F4D\u4E8E**<\u7B26\u6587>**\u5730\u5757\u4E0A\u65F6\u53EF\u5438\u6536\u7B26\u6587\u5E76\u6062\u590D6\u70B9\u751F\u547D\uFF0C\u4E0D\u6D88\u8017**<\u884C\u52A8\u70B9>**\u3002\u6B7B\u4EA1\u540E\u5728\u539F\u5730\u7559\u4E0B**<\u7B26\u6587>**\u3002"
|
||||
SkillName: "\u74E6\u5C14\u54C8\u62C9\u8A93\u7EA6"
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
@ -4132,7 +4123,7 @@ MonoBehaviour:
|
||||
SkillIcon: {fileID: 21300000, guid: 89ab3f77ed894b0c910d5b90627cc8e2, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
skillPriority: 0
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
@ -4179,6 +4170,48 @@ MonoBehaviour:
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
ReserveCommonTransform: 0
|
||||
- SkillType: 320
|
||||
SkillViewType: 1
|
||||
SkillName: "极光行歌"
|
||||
SkillDesc: "\u79FB\u52A8\u65F6\u4E3A\u5468\u56F41\u683C\u5185\u53CB\u65B9\u5355\u4F4D\u6062\u590D2\u70B9\u751F\u547D\uFF1B\u5468\u56F41\u683C\u5185\u5355\u4F4D\u6B7B\u4EA1\u65F6\uFF0C\u81EA\u8EAB\u6062\u590D5\u70B9\u751F\u547D\u3002"
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: c1262ff24c1847a3b0695c0471bfbdcf, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
ReserveCommonTransform: 0
|
||||
- SkillType: 321
|
||||
SkillViewType: 1
|
||||
SkillName: "霜翼誓印"
|
||||
SkillDesc: "可向1格范围内友方单位施法,赋予**<女武神的庇佑>**,持续1回合。"
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: 98954bee70a64c4ca2dc422a91383ae8, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
ReserveCommonTransform: 0
|
||||
- SkillType: 322
|
||||
SkillViewType: 4
|
||||
SkillName: "女武神的庇佑"
|
||||
SkillDesc: "若赐予庇护的**<女武神>**位于1格范围内,所受伤害全部转移至**<女武神>**。"
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 1
|
||||
SkillIcon: {fileID: 21300000, guid: 98954bee70a64c4ca2dc422a91383ae8, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 0
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
ReserveCommonTransform: 0
|
||||
SkillViewTypeColorList:
|
||||
- SkillViewType: 0
|
||||
Color: {r: 0.16078432, g: 0.16078432, b: 0.3647059, a: 1}
|
||||
|
||||
@ -202,7 +202,7 @@ MonoBehaviour:
|
||||
Description: "\u53EF\u4EE5\u8BAD\u7EC3\u5361\u62C9\u514B\uFF0C\u53EF\u4EE5\u8FDB\u5165\u6DF1\u6D77\u533A\u57DF"
|
||||
icon: {fileID: 0}
|
||||
CostLevel: 2
|
||||
FatherTechList: 15000000
|
||||
FatherTechList: 1500000042000000
|
||||
TechAtomList: 3900000038000000
|
||||
TechTreeCircleViewType: 14
|
||||
- TechType: 24
|
||||
@ -494,12 +494,12 @@ MonoBehaviour:
|
||||
TechAtomList: 150000001600000074000000
|
||||
TechTreeCircleViewType: 16
|
||||
- TechType: 70
|
||||
TechName: "\u4E39\u9EA6\u91D1\u5916\u4EA4"
|
||||
Description: "\u7EF4\u4EAC\u7279\u8272\u5916\u4EA4\u79D1\u6280\u3002\u53EF\u4EE5\u5EFA\u9020**<\u5927\u4F7F\u9986>**\u5E76\u8BAD\u7EC3**<\u95F4\u8C0D>**\uFF1B\u65B0\u589E**<\u4E39\u9EA6\u91D1>**\u52D2\u7D22\u80FD\u529B\uFF0C\u53EF\u5411\u5176\u4ED6\u5E1D\u56FD\u53D1\u8D77\u4E39\u9EA6\u91D1\u7D22\u53D6\u3002"
|
||||
TechName: "\u7EF4\u4EAC\u5916\u4EA4"
|
||||
Description: "\u7EF4\u4EAC\u7279\u8272\u5916\u4EA4\u79D1\u6280\u3002\u53EF\u4EE5\u5EFA\u9020**<\u5927\u4F7F\u9986>**\u5E76\u8BAD\u7EC3**<\u95F4\u8C0D>**\u3002"
|
||||
icon: {fileID: 0}
|
||||
CostLevel: 3
|
||||
FatherTechList: 43000000
|
||||
TechAtomList: 1b0000001d00000076000000
|
||||
TechAtomList: 1b0000001d000000
|
||||
TechTreeCircleViewType: 17
|
||||
- TechType: 71
|
||||
TechName: "\u7EF4\u4EAC\u8D38\u6613"
|
||||
@ -7361,7 +7361,7 @@ MonoBehaviour:
|
||||
TechActions: []
|
||||
UseActionSprite: 0
|
||||
IconContainer:
|
||||
Icon: {fileID: 21300000, guid: 0aa923f844a87e2449176665381a42dd, type: 3}
|
||||
Icon: {fileID: 21300000, guid: c1262ff24c1847a3b0695c0471bfbdcf, type: 3}
|
||||
IsVarient: 0
|
||||
IconList: []
|
||||
iconViewSizeType: 2
|
||||
|
||||
@ -7986,8 +7986,8 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u535A\u4E3D\u7075\u68A6 Lv.1"
|
||||
Desc: "\u5411\u53CB\u65B9\u65BD\u52A0**<\u535A\u4E3D\u52A0\u62A4>**\u62B5\u6D88\u4F24\u5BB3\uFF1B\u653B\u51FB\u654C\u65B9\u65F6\u9644\u52A0**<\u9000\u6CBB>**\uFF0C\u518D\u6B21\u653B\u51FB\u5E26\u6709\u9000\u6CBB\u7684\u76EE\u6807\u4F1A\u9020\u6210\u989D\u5916\u4F24\u5BB3\u3002"
|
||||
LandType: 5
|
||||
Desc: "**<\u738B>**\u804C\u9636\u82F1\u96C4\u3002"
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 20
|
||||
Attack: 2
|
||||
@ -8013,8 +8013,8 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u535A\u4E3D\u7075\u68A6 Lv.2"
|
||||
Desc: "\u79FB\u52A8\u6216\u65BD\u52A0\u52A0\u62A4\u540E\uFF0C\u4F1A\u5BF9\u5C04\u7A0B\u5185\u5E26\u6709**<\u9000\u6CBB>**\u7684\u654C\u65B9\u82F1\u96C4\u9020\u6210\u5C42\u6570\u4F24\u5BB3\uFF1B\u9644\u8FD1\u53CB\u65B9\u82F1\u96C4\u88AB\u653B\u51FB\u65F6\uFF0C\u653B\u51FB\u8005\u83B7\u5F97\u9000\u6CBB\u3002"
|
||||
LandType: 5
|
||||
Desc: "**<\u738B>**\u804C\u9636\u82F1\u96C4\u3002"
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 25
|
||||
Attack: 2.5
|
||||
@ -8040,13 +8040,13 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u535A\u4E3D\u7075\u68A6 Lv.3"
|
||||
Desc: "\u65BD\u52A0\u52A0\u62A4\u6216\u653B\u51FB\u654C\u65B9\u65F6\uFF0C\u4F1A\u968F\u673A\u9644\u52A0\u91D1\u5E01/\u62A2\u52AB\u76F8\u5173\u7684**<\u7B26\u5361>**\u6548\u679C\u3002"
|
||||
LandType: 5
|
||||
Desc: "**<\u738B>**\u804C\u9636\u82F1\u96C4\u3002"
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 30
|
||||
Attack: 3
|
||||
Defense: 3
|
||||
MoveRange: 1
|
||||
MoveRange: 2
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
Cost: 0
|
||||
@ -8067,13 +8067,13 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u535A\u4E3D\u7075\u68A6 Lv.4"
|
||||
Desc: "**<\u9000\u6CBB>**\u4F24\u5BB3\u63D0\u5347\u81F3\u6BCF\u5C425\u70B9\uFF0C\u5E76\u4FDD\u7559\u52A0\u62A4\u3001\u9000\u6CBB\u8054\u52A8\u4E0E\u7B26\u5361\u91D1\u5E01\u6C60\u3002"
|
||||
LandType: 5
|
||||
Desc: "**<\u738B>**\u804C\u9636\u82F1\u96C4\u3002"
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 35
|
||||
Attack: 3
|
||||
Defense: 4
|
||||
MoveRange: 1
|
||||
MoveRange: 2
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
Cost: 0
|
||||
@ -8094,7 +8094,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u5B87\u4F50\u89C1\u5807\u5B50 Lv.1"
|
||||
Desc: "\u79FB\u52A8\u540E\u53EF\u53D1\u5C04\u632A\u5A01\u7075\u5F02\u73E0\u3002\u632A\u5A01\u7075\u5F02\u73E0\u5F71\u54CD\u9644\u8FD1\u5355\u4F4D\u7684\u79FB\u52A8/\u653B\u51FB\u6362\u7B97\u3002"
|
||||
Desc: "**<\u540E>**\u804C\u9636\u82F1\u96C4\u3002"
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 10
|
||||
@ -8102,9 +8102,9 @@ MonoBehaviour:
|
||||
Defense: 3
|
||||
MoveRange: 1
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
SightRange: 2
|
||||
Cost: 0
|
||||
Skills: 02000000030000000c01000020010000
|
||||
Skills: 020000000c01000020010000
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -8121,7 +8121,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u5B87\u4F50\u89C1\u5807\u5B50 Lv.2"
|
||||
Desc: "\u5728Lv.1\u57FA\u7840\u4E0A\uFF0C\u53EF\u5411\u68EE\u6797\u6216\u6D45\u6D77\u53D1\u5C04\u4E39\u9EA6\u7075\u5F02\u73E0\uFF0C\u5F71\u54CD\u9644\u8FD1\u5355\u4F4D\u7684\u653B\u51FB/\u9632\u5FA1\u6362\u7B97\u3002"
|
||||
Desc: "**<\u540E>**\u804C\u9636\u82F1\u96C4\u3002"
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 20
|
||||
@ -8129,9 +8129,9 @@ MonoBehaviour:
|
||||
Defense: 3
|
||||
MoveRange: 1
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
SightRange: 2
|
||||
Cost: 0
|
||||
Skills: 02000000030000000c01000020010000
|
||||
Skills: 020000000c01000020010000
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -8148,7 +8148,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u5B87\u4F50\u89C1\u5807\u5B50 Lv.3"
|
||||
Desc: "\u5728Lv.1/Lv.2\u57FA\u7840\u4E0A\uFF0C\u53EF\u5411\u5E73\u539F\u53D1\u5C04\u82F1\u683C\u5170\u7075\u5F02\u73E0\uFF0C\u66FF\u9644\u8FD1\u53CB\u519B\u627F\u4F243\u6B21\u3002"
|
||||
Desc: "**<\u540E>**\u804C\u9636\u82F1\u96C4\u3002"
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 25
|
||||
@ -8156,9 +8156,9 @@ MonoBehaviour:
|
||||
Defense: 3
|
||||
MoveRange: 2
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
SightRange: 2
|
||||
Cost: 0
|
||||
Skills: 02000000030000000c01000020010000
|
||||
Skills: 020000000c01000020010000
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -8175,17 +8175,17 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u5B87\u4F50\u89C1\u5807\u5B50 Lv.4"
|
||||
Desc: "\u6240\u6709\u7075\u5F02\u73E0\u6548\u679C\u5347\u7EA7\uFF1A\u53C2\u4E0E\u4E92\u6362\u7684\u6570\u503C\u4E0E\u539F\u672C\u6570\u503C\u90FD\u53D6\u6700\u5927\u503C\u3002"
|
||||
Desc: "**<\u540E>**\u804C\u9636\u82F1\u96C4\u3002"
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 30
|
||||
Attack: 3
|
||||
Defense: 3
|
||||
MoveRange: 2
|
||||
AttackRange: 3
|
||||
SightRange: 1
|
||||
AttackRange: 2
|
||||
SightRange: 2
|
||||
Cost: 0
|
||||
Skills: 02000000030000000c0100002001000024010000
|
||||
Skills: 020000000c0100002001000024010000
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -9345,8 +9345,8 @@ MonoBehaviour:
|
||||
GiantEmpire:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "挪威之珠"
|
||||
Desc: "周围1格内的友方单位,**<移动力>**与**<攻击力>**互换。"
|
||||
Name: "\u632A\u5A01\u4E4B\u73E0"
|
||||
Desc: "\u53EF\u8BBE\u7F6E\u5728**<\u6DF1\u6D77>**\u6216**<\u5C71\u8109>**\uFF0C\u5468\u56F41\u683C\u5185\u7684\u53CB\u65B9\u5355\u4F4D\uFF0C**<\u79FB\u52A8\u529B>**\u4E0E**<\u653B\u51FB\u529B>**\u4E92\u6362\u3002"
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 5
|
||||
@ -9372,8 +9372,8 @@ MonoBehaviour:
|
||||
GiantEmpire:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "丹麦之珠"
|
||||
Desc: "周围1格内的友方单位,**<防御力>**与**<攻击力>**互换。"
|
||||
Name: "\u4E39\u9EA6\u4E4B\u73E0"
|
||||
Desc: "\u53EF\u8BBE\u7F6E\u5728**<\u6D45\u6D77>**\u6216**<\u68EE\u6797>**\uFF0C\u5468\u56F41\u683C\u5185\u7684\u53CB\u65B9\u5355\u4F4D\uFF0C**<\u9632\u5FA1\u529B>**\u4E0E**<\u653B\u51FB\u529B>**\u4E92\u6362\u3002"
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 5
|
||||
@ -9399,8 +9399,8 @@ MonoBehaviour:
|
||||
GiantEmpire:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "英格兰之珠"
|
||||
Desc: "能够为周围1格内的友方单位抵挡3次伤害。"
|
||||
Name: "\u82F1\u683C\u5170\u4E4B\u73E0"
|
||||
Desc: "\u53EF\u8BBE\u7F6E\u5728**<\u5E73\u539F>**\uFF0C\u80FD\u591F\u4E3A\u5468\u56F41\u683C\u5185\u7684\u53CB\u65B9\u5355\u4F4D\u62B5\u63213\u6B21\u4F24\u5BB3\u3002"
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 5
|
||||
@ -9427,7 +9427,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u517D\u5F15"
|
||||
Desc: "暂未设置文案"
|
||||
Desc: "\u6682\u672A\u8BBE\u7F6E\u6587\u6848"
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 10
|
||||
@ -9454,7 +9454,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u963F\u543D\u53CC\u8EAB"
|
||||
Desc: "暂未设置文案"
|
||||
Desc: "\u6682\u672A\u8BBE\u7F6E\u6587\u6848"
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 25
|
||||
@ -9481,7 +9481,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u5C0F\u8403\u9999"
|
||||
Desc: "**<小萃香>**单位标记。可附着到**<伊吹萃香>**身上。"
|
||||
Desc: "**<\u5C0F\u8403\u9999>**\u5355\u4F4D\u6807\u8BB0\u3002\u53EF\u9644\u7740\u5230**<\u4F0A\u5439\u8403\u9999>**\u8EAB\u4E0A\u3002"
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 5
|
||||
@ -9508,7 +9508,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u5361\u7EF4\u8239"
|
||||
Desc: "**<博丽帝国>**特色水域单位。无法升阶为其他船只。"
|
||||
Desc: "**<\u535A\u4E3D\u5E1D\u56FD>**\u7279\u8272\u6C34\u57DF\u5355\u4F4D\u3002\u65E0\u6CD5\u5347\u9636\u4E3A\u5176\u4ED6\u8239\u53EA\u3002"
|
||||
LandType: 2
|
||||
NoMaxHealth: 1
|
||||
MaxHealth: 0
|
||||
@ -9535,7 +9535,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u957F\u8239"
|
||||
Desc: "**<博丽帝国>**特色水域单位。拥有更高的防御。"
|
||||
Desc: "**<\u535A\u4E3D\u5E1D\u56FD>**\u7279\u8272\u6C34\u57DF\u5355\u4F4D\u3002\u62E5\u6709\u66F4\u9AD8\u7684\u9632\u5FA1\u548C\u79FB\u52A8\u529B\u3002"
|
||||
LandType: 2
|
||||
NoMaxHealth: 1
|
||||
MaxHealth: 0
|
||||
@ -9562,7 +9562,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u9F99\u8239"
|
||||
Desc: "**<博丽帝国>**特色水域单位。**<主动攻击>**不会被反击,可逃脱;攻击海上单位时可将目标向后推动。"
|
||||
Desc: "**<\u535A\u4E3D\u5E1D\u56FD>**\u7279\u8272\u6C34\u57DF\u5355\u4F4D\u3002**<\u4E3B\u52A8\u653B\u51FB>**\u4E0D\u4F1A\u88AB\u53CD\u51FB\uFF0C\u53EF\u9003\u8131\uFF1B\u653B\u51FB\u6D77\u4E0A\u5355\u4F4D\u65F6\u53EF\u5C06\u76EE\u6807\u5411\u540E\u63A8\u52A8\u3002"
|
||||
LandType: 2
|
||||
NoMaxHealth: 1
|
||||
MaxHealth: 0
|
||||
@ -9589,17 +9589,17 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u5973\u6B66\u795E"
|
||||
Desc: "**<博丽帝国>**特色**<巨人单位>**。移动时为周围友方恢复生命;可为保护指定友方单位,附近友方单位死亡时恢复生命。可以利用**<符文>**地块恢复生命。"
|
||||
Desc: "**<\u535A\u4E3D\u5E1D\u56FD>**\u7279\u8272**<\u5DE8\u4EBA\u5355\u4F4D>**\u3002\u79FB\u52A8\u65F6\u4E3A\u5468\u56F4\u53CB\u65B9\u6062\u590D\u751F\u547D\uFF1B\u53EF\u4E3A\u4FDD\u62A4\u6307\u5B9A\u53CB\u65B9\u5355\u4F4D\uFF0C\u9644\u8FD1\u53CB\u65B9\u5355\u4F4D\u6B7B\u4EA1\u65F6\u6062\u590D\u751F\u547D\u3002\u53EF\u4EE5\u5229\u7528**<\u7B26\u6587>**\u5730\u5757\u6062\u590D\u751F\u547D\u3002"
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 40
|
||||
MaxHealth: 30
|
||||
Attack: 0
|
||||
Defense: 2
|
||||
Defense: 4
|
||||
MoveRange: 2
|
||||
AttackRange: 1
|
||||
SightRange: 2
|
||||
Cost: 10
|
||||
Skills: 36010000
|
||||
Skills: 36010000020000004001000041010000
|
||||
Sprite: {fileID: 21300000, guid: ad20a8ee94c04d7693efc0650c672d16, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -9634,7 +9634,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: "\u5706\u76FE\u5175"
|
||||
Desc: "**<博丽帝国>**特色单位。与其他**<圆盾兵>**相邻时获得额外防御。"
|
||||
Desc: "**<\u535A\u4E3D\u5E1D\u56FD>**\u7279\u8272\u5355\u4F4D\u3002\u4E0E\u5176\u4ED6**<\u5706\u76FE\u5175>**\u76F8\u90BB\u65F6\u83B7\u5F97\u989D\u5916\u9632\u5FA1\u3002"
|
||||
LandType: 1
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 15
|
||||
|
||||
@ -12,8 +12,13 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: c659b850b20e460f866ed3f696be406b, type: 3}
|
||||
m_Name: VersionConfig
|
||||
m_EditorClassIdentifier:
|
||||
CurVersionId: 70400
|
||||
CurVersionId: 70401
|
||||
Versions:
|
||||
- MajorVersion: 0
|
||||
MinorVersion: 7
|
||||
PatchVersion: 4
|
||||
Description: "[\u7248\u672C V0.7.4b]\n\u53D1\u5E03\u65E5\u671F:26.6.23\n\n---------[\u65B0\u9635\u8425\uFF1A\u535A\u4E3D\u5E1D\u56FD]-------------\n1.\u65B0\u589E\u9635\u8425\u535A\u4E3D\u5E1D\u56FD\u53EF\u4F53\u9A8C\uFF08\u5916\u4EA4\u6A21\u5757-\u4E39\u9EA6\u91D1\u672A\u5B9E\u88C5\uFF09\n2.\u65B0\u589E\u82F1\u96C4\u535A\u4E3D\u7075\u68A6\u3001\u5B87\u4F50\u89C1\u5807\u5B50\u53EF\u4F53\u9A8C\u3002\u5176\u4ED6\u4E09\u4F4D\u82F1\u96C4\u5C06\u5728\u540E\u7EED\u7248\u672C\u5F00\u653E"
|
||||
FourthVersion: 1
|
||||
- MajorVersion: 0
|
||||
MinorVersion: 7
|
||||
PatchVersion: 4
|
||||
|
||||
@ -5154,7 +5154,7 @@ MonoBehaviour:
|
||||
TechDesc:
|
||||
NeedLockDesc: 0
|
||||
LockDesc:
|
||||
Icon: {fileID: 21300000, guid: ae88a6e6387f26640aafefa0f8f13cc6, type: 3}
|
||||
Icon: {fileID: 21300000, guid: 15241810dc2b8bd4d9fab1bf4ae0ca18, type: 3}
|
||||
IconViewSizeType: 2
|
||||
VarientIcon: 0
|
||||
IconList: []
|
||||
@ -6084,7 +6084,7 @@ MonoBehaviour:
|
||||
AIParamType: 0
|
||||
CultureCardType: 0
|
||||
ActionName: 21560
|
||||
Desc: 21561
|
||||
Desc: 21639
|
||||
NeedTechDesc: 0
|
||||
TechDesc:
|
||||
NeedLockDesc: 0
|
||||
@ -10248,16 +10248,16 @@ MonoBehaviour:
|
||||
AIParamType: 0
|
||||
CultureCardType: 0
|
||||
ActionName: 21585
|
||||
Desc: 21586
|
||||
Desc: 21635
|
||||
NeedTechDesc: 1
|
||||
TechDesc: 21438
|
||||
NeedLockDesc: 0
|
||||
LockDesc:
|
||||
Icon: {fileID: 21300000, guid: da5ee315e3434a7ba89994dfdcfddab0, type: 3}
|
||||
Icon: {fileID: 21300000, guid: 21a02f8622114810a34e03c82b7b0638, type: 3}
|
||||
IconViewSizeType: 2
|
||||
VarientIcon: 0
|
||||
IconList: []
|
||||
Cost: 0
|
||||
Cost: 3
|
||||
CityExp: 0
|
||||
NoNeedTech: 0
|
||||
SpriteSize: {x: 40, y: 40}
|
||||
|
||||
@ -77,6 +77,19 @@ MonoBehaviour:
|
||||
Desc:
|
||||
HasLevel: 0
|
||||
LevelSprite: []
|
||||
- IgnoreCivId: 0
|
||||
IgnoreForceId: 0
|
||||
IsGridSpType: 0
|
||||
GridSpType: 0
|
||||
CivId: 4
|
||||
ForceId: 4
|
||||
OnlyCarryGiant: 0
|
||||
CarryGiantType: 0
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
Name:
|
||||
Desc:
|
||||
HasLevel: 0
|
||||
LevelSprite: []
|
||||
RequiredTechs:
|
||||
LimitedEmpires: []
|
||||
PrerequisiteCards: 0f000000
|
||||
@ -148,6 +161,19 @@ MonoBehaviour:
|
||||
Desc:
|
||||
HasLevel: 0
|
||||
LevelSprite: []
|
||||
- IgnoreCivId: 0
|
||||
IgnoreForceId: 0
|
||||
IsGridSpType: 0
|
||||
GridSpType: 0
|
||||
CivId: 4
|
||||
ForceId: 4
|
||||
OnlyCarryGiant: 0
|
||||
CarryGiantType: 0
|
||||
Sprite: {fileID: 21300000, guid: c74d72e70b64494ca571bfdf1ff71b33, type: 3}
|
||||
Name:
|
||||
Desc:
|
||||
HasLevel: 0
|
||||
LevelSprite: []
|
||||
RequiredTechs:
|
||||
LimitedEmpires: []
|
||||
PrerequisiteCards: 0100000010000000
|
||||
|
||||
@ -661,62 +661,62 @@ MonoBehaviour:
|
||||
HeroIllustration: {fileID: 21300000, guid: 1b95776d20b35034682cec20dd8fd2e2, type: 3}
|
||||
HeroAvatar: {fileID: 21300000, guid: c662e6880212d104dbdbeda8015d1ef0, type: 3}
|
||||
TaskList:
|
||||
- taskContentType: 23
|
||||
- taskContentType: 13
|
||||
Param: 25
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: 21022
|
||||
Desc: 2477
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 23
|
||||
Param: 60
|
||||
- taskContentType: 1
|
||||
Param: 30
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: 21022
|
||||
Desc: 1997
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 23
|
||||
Param: 120
|
||||
- taskContentType: 1
|
||||
Param: 70
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: 21022
|
||||
Desc: 1997
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- GiantType: 22
|
||||
HeroIllustration: {fileID: 21300000, guid: 98ea1a5d946041e0a46bc7f04a73947f, type: 3}
|
||||
HeroAvatar: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
TaskList:
|
||||
- taskContentType: 23
|
||||
Param: 25
|
||||
- taskContentType: 5
|
||||
Param: 40
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: 21022
|
||||
Desc: 21654
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 23
|
||||
Param: 60
|
||||
- taskContentType: 24
|
||||
Param: 4
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: 21022
|
||||
Desc: 21655
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 23
|
||||
Param: 120
|
||||
- taskContentType: 24
|
||||
Param: 8
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: 21022
|
||||
Desc: 21655
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- GiantType: 23
|
||||
|
||||
@ -197,7 +197,7 @@ MonoBehaviour:
|
||||
Name: 476
|
||||
SubTitle: 21234
|
||||
Desc: 21235
|
||||
Diag: 21236
|
||||
Diag: 931
|
||||
EnglishName: REIMU HAKUREI
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: 1b95776d20b35034682cec20dd8fd2e2, type: 3}
|
||||
@ -206,7 +206,7 @@ MonoBehaviour:
|
||||
Name: 21237
|
||||
SubTitle: 21238
|
||||
Desc: 21239
|
||||
Diag: 21240
|
||||
Diag: 931
|
||||
EnglishName: SUMIREKO USAMI
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: 98ea1a5d946041e0a46bc7f04a73947f, type: 3}
|
||||
@ -215,7 +215,7 @@ MonoBehaviour:
|
||||
Name: 21241
|
||||
SubTitle: 21242
|
||||
Desc: 21243
|
||||
Diag: 21244
|
||||
Diag: 931
|
||||
EnglishName: KASEN IBARAKI
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: d6686cb8912440a2ab25883148f1c342, type: 3}
|
||||
@ -224,7 +224,7 @@ MonoBehaviour:
|
||||
Name: 21245
|
||||
SubTitle: 21246
|
||||
Desc: 21247
|
||||
Diag: 21248
|
||||
Diag: 931
|
||||
EnglishName: AUNN KOMANO
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: bb4f6df6cddc46fb803f1188e2491c10, type: 3}
|
||||
@ -233,7 +233,7 @@ MonoBehaviour:
|
||||
Name: 21249
|
||||
SubTitle: 21250
|
||||
Desc: 21251
|
||||
Diag: 21252
|
||||
Diag: 931
|
||||
EnglishName: SUIKA IBUKI
|
||||
DiagColor: {r: 0.9, g: 0.7, b: 0.2, a: 1}
|
||||
Illust: {fileID: 21300000, guid: 477ceacc14644cffb068239634480c82, type: 3}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -170,7 +170,7 @@ MonoBehaviour:
|
||||
FlagIcon: {fileID: 21300000, guid: 0f2d5390807f409a994d18a086d76b19, type: 3}
|
||||
Diff: 0
|
||||
TechAtomList: 6600000069000000670000006e000000
|
||||
EmpireDesc:
|
||||
EmpireDesc: 21656
|
||||
LeaderDesc: 21382
|
||||
StartChatBubble:
|
||||
- 21383
|
||||
|
||||
@ -3745,7 +3745,7 @@ MonoBehaviour:
|
||||
ReserveCommonTransform: 1
|
||||
- SkillType: 288
|
||||
SkillViewType: 2
|
||||
SkillName: 21278
|
||||
SkillName: 21640
|
||||
SkillDesc: 21632
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
@ -3758,9 +3758,9 @@ MonoBehaviour:
|
||||
ReserveGiantUpgrade: 1
|
||||
ReserveCommonTransform: 1
|
||||
- SkillType: 289
|
||||
SkillViewType: 4
|
||||
SkillViewType: 1
|
||||
SkillName: 21497
|
||||
SkillDesc: 21595
|
||||
SkillDesc: 21657
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: a95cdede1f104514a3b05070c9c5d855, type: 3}
|
||||
@ -3772,9 +3772,9 @@ MonoBehaviour:
|
||||
ReserveGiantUpgrade: 1
|
||||
ReserveCommonTransform: 1
|
||||
- SkillType: 290
|
||||
SkillViewType: 2
|
||||
SkillViewType: 1
|
||||
SkillName: 21498
|
||||
SkillDesc: 21597
|
||||
SkillDesc: 21658
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: 0f6b9133d5ef4a3a9916e5d9311914d3, type: 3}
|
||||
@ -3786,7 +3786,7 @@ MonoBehaviour:
|
||||
ReserveGiantUpgrade: 1
|
||||
ReserveCommonTransform: 1
|
||||
- SkillType: 291
|
||||
SkillViewType: 2
|
||||
SkillViewType: 1
|
||||
SkillName: 21499
|
||||
SkillDesc: 21598
|
||||
NotShow: 0
|
||||
@ -3802,7 +3802,7 @@ MonoBehaviour:
|
||||
- SkillType: 292
|
||||
SkillViewType: 2
|
||||
SkillName: 21500
|
||||
SkillDesc: 21616
|
||||
SkillDesc: 21645
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: acf11aaa15ab4c5bae3654fcc6c3dd7c, type: 3}
|
||||
@ -4058,17 +4058,8 @@ MonoBehaviour:
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: c1262ff24c1847a3b0695c0471bfbdcf, type: 3}
|
||||
HasShowList: 1
|
||||
SkillShowList:
|
||||
- UnitFullType:
|
||||
UnitType: 53
|
||||
GiantType: 0
|
||||
UnitLevel: 0
|
||||
IgnoreUnitGiantType: 1
|
||||
IgnoreUnitLevel: 1
|
||||
Icon: {fileID: 0}
|
||||
SkillDesc: 21545
|
||||
SkillName: 21458
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
@ -4125,18 +4116,18 @@ MonoBehaviour:
|
||||
SkillIcon: {fileID: 21300000, guid: 89ab3f77ed894b0c910d5b90627cc8e2, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
skillPriority: 0
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
ReserveCommonTransform: 0
|
||||
- SkillType: 317
|
||||
SkillViewType: 0
|
||||
SkillName: 17948
|
||||
SkillDesc: 21627
|
||||
SkillName: 21636
|
||||
SkillDesc: 21637
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: ae88a6e6387f26640aafefa0f8f13cc6, type: 3}
|
||||
SkillIcon: {fileID: 21300000, guid: 15241810dc2b8bd4d9fab1bf4ae0ca18, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
@ -4150,7 +4141,7 @@ MonoBehaviour:
|
||||
SkillDesc: 21629
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: 7c846219dc9d4435a2e756c7e6be0508, type: 3}
|
||||
SkillIcon: {fileID: 21300000, guid: fda57906102ccec4793ddee43b9fa2a7, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
@ -4160,11 +4151,11 @@ MonoBehaviour:
|
||||
ReserveCommonTransform: 0
|
||||
- SkillType: 319
|
||||
SkillViewType: 0
|
||||
SkillName: 21630
|
||||
SkillName: 21638
|
||||
SkillDesc: 21631
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: 14833b6f952970c4f824c41403f11a23, type: 3}
|
||||
SkillIcon: {fileID: 21300000, guid: bd9b19da2d0e5fd438606da48c1a69cf, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
@ -4172,6 +4163,48 @@ MonoBehaviour:
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
ReserveCommonTransform: 0
|
||||
- SkillType: 320
|
||||
SkillViewType: 1
|
||||
SkillName: 21663
|
||||
SkillDesc: 21649
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: c1262ff24c1847a3b0695c0471bfbdcf, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
ReserveCommonTransform: 0
|
||||
- SkillType: 321
|
||||
SkillViewType: 1
|
||||
SkillName: 21659
|
||||
SkillDesc: 21661
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 0
|
||||
SkillIcon: {fileID: 21300000, guid: 98954bee70a64c4ca2dc422a91383ae8, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 1
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
ReserveCommonTransform: 0
|
||||
- SkillType: 322
|
||||
SkillViewType: 4
|
||||
SkillName: 21660
|
||||
SkillDesc: 21662
|
||||
NotShow: 0
|
||||
ShowOnUnitMono: 1
|
||||
SkillIcon: {fileID: 21300000, guid: 98954bee70a64c4ca2dc422a91383ae8, type: 3}
|
||||
HasShowList: 0
|
||||
SkillShowList: []
|
||||
skillPriority: 0
|
||||
ReserveOnCarry: 0
|
||||
ReserveLeaveCarry: 0
|
||||
ReserveGiantUpgrade: 0
|
||||
ReserveCommonTransform: 0
|
||||
SkillViewTypeColorList:
|
||||
- SkillViewType: 0
|
||||
Color: {r: 0.16078432, g: 0.16078432, b: 0.3647059, a: 1}
|
||||
|
||||
@ -202,7 +202,7 @@ MonoBehaviour:
|
||||
Description: 1166
|
||||
icon: {fileID: 0}
|
||||
CostLevel: 2
|
||||
FatherTechList: 15000000
|
||||
FatherTechList: 1500000042000000
|
||||
TechAtomList: 3900000038000000
|
||||
TechTreeCircleViewType: 14
|
||||
- TechType: 24
|
||||
@ -494,12 +494,12 @@ MonoBehaviour:
|
||||
TechAtomList: 150000001600000074000000
|
||||
TechTreeCircleViewType: 16
|
||||
- TechType: 70
|
||||
TechName: 21410
|
||||
Description: 21412
|
||||
TechName: 21646
|
||||
Description: 21647
|
||||
icon: {fileID: 0}
|
||||
CostLevel: 3
|
||||
FatherTechList: 43000000
|
||||
TechAtomList: 1b0000001d00000076000000
|
||||
TechAtomList: 1b0000001d000000
|
||||
TechTreeCircleViewType: 17
|
||||
- TechType: 71
|
||||
TechName: 21451
|
||||
@ -7361,7 +7361,7 @@ MonoBehaviour:
|
||||
TechActions: []
|
||||
UseActionSprite: 0
|
||||
IconContainer:
|
||||
Icon: {fileID: 21300000, guid: 0aa923f844a87e2449176665381a42dd, type: 3}
|
||||
Icon: {fileID: 21300000, guid: c1262ff24c1847a3b0695c0471bfbdcf, type: 3}
|
||||
IsVarient: 0
|
||||
IconList: []
|
||||
iconViewSizeType: 2
|
||||
|
||||
@ -7986,8 +7986,8 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21314
|
||||
Desc: 21315
|
||||
LandType: 5
|
||||
Desc: 2284
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 20
|
||||
Attack: 2
|
||||
@ -8013,8 +8013,8 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21316
|
||||
Desc: 21317
|
||||
LandType: 5
|
||||
Desc: 2284
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 25
|
||||
Attack: 2.5
|
||||
@ -8040,13 +8040,13 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21318
|
||||
Desc: 21320
|
||||
LandType: 5
|
||||
Desc: 2284
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 30
|
||||
Attack: 3
|
||||
Defense: 3
|
||||
MoveRange: 1
|
||||
MoveRange: 2
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
Cost: 0
|
||||
@ -8067,13 +8067,13 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21321
|
||||
Desc: 21322
|
||||
LandType: 5
|
||||
Desc: 2284
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 35
|
||||
Attack: 3
|
||||
Defense: 4
|
||||
MoveRange: 1
|
||||
MoveRange: 2
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
Cost: 0
|
||||
@ -8094,7 +8094,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21323
|
||||
Desc: 21324
|
||||
Desc: 2285
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 10
|
||||
@ -8102,9 +8102,9 @@ MonoBehaviour:
|
||||
Defense: 3
|
||||
MoveRange: 1
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
SightRange: 2
|
||||
Cost: 0
|
||||
Skills: 02000000030000000c01000020010000
|
||||
Skills: 020000000c01000020010000
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -8121,7 +8121,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21325
|
||||
Desc: 21326
|
||||
Desc: 2285
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 20
|
||||
@ -8129,9 +8129,9 @@ MonoBehaviour:
|
||||
Defense: 3
|
||||
MoveRange: 1
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
SightRange: 2
|
||||
Cost: 0
|
||||
Skills: 02000000030000000c01000020010000
|
||||
Skills: 020000000c01000020010000
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -8148,7 +8148,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21327
|
||||
Desc: 21328
|
||||
Desc: 2285
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 25
|
||||
@ -8156,9 +8156,9 @@ MonoBehaviour:
|
||||
Defense: 3
|
||||
MoveRange: 2
|
||||
AttackRange: 2
|
||||
SightRange: 1
|
||||
SightRange: 2
|
||||
Cost: 0
|
||||
Skills: 02000000030000000c01000020010000
|
||||
Skills: 020000000c01000020010000
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -8175,17 +8175,17 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21329
|
||||
Desc: 21330
|
||||
Desc: 2285
|
||||
LandType: 5
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 30
|
||||
Attack: 3
|
||||
Defense: 3
|
||||
MoveRange: 2
|
||||
AttackRange: 3
|
||||
SightRange: 1
|
||||
AttackRange: 2
|
||||
SightRange: 2
|
||||
Cost: 0
|
||||
Skills: 02000000030000000c0100002001000024010000
|
||||
Skills: 020000000c0100002001000024010000
|
||||
Sprite: {fileID: 21300000, guid: 81884ebe222d46afb047331033c15379, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -9346,7 +9346,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21497
|
||||
Desc: 21595
|
||||
Desc: 21641
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 5
|
||||
@ -9373,7 +9373,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21498
|
||||
Desc: 21597
|
||||
Desc: 21642
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 5
|
||||
@ -9400,7 +9400,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21499
|
||||
Desc: 21598
|
||||
Desc: 21643
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 5
|
||||
@ -9535,7 +9535,7 @@ MonoBehaviour:
|
||||
Civ: 5
|
||||
Force: 5
|
||||
Name: 21440
|
||||
Desc: 21602
|
||||
Desc: 21644
|
||||
LandType: 2
|
||||
NoMaxHealth: 1
|
||||
MaxHealth: 0
|
||||
@ -9592,14 +9592,14 @@ MonoBehaviour:
|
||||
Desc: 21604
|
||||
LandType: 6
|
||||
NoMaxHealth: 0
|
||||
MaxHealth: 40
|
||||
MaxHealth: 30
|
||||
Attack: 0
|
||||
Defense: 2
|
||||
Defense: 4
|
||||
MoveRange: 2
|
||||
AttackRange: 1
|
||||
SightRange: 2
|
||||
Cost: 10
|
||||
Skills: 36010000
|
||||
Skills: 36010000020000004001000041010000
|
||||
Sprite: {fileID: 21300000, guid: ad20a8ee94c04d7693efc0650c672d16, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
|
||||
@ -12,8 +12,13 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: c659b850b20e460f866ed3f696be406b, type: 3}
|
||||
m_Name: VersionConfig
|
||||
m_EditorClassIdentifier:
|
||||
CurVersionId: 70400
|
||||
CurVersionId: 70401
|
||||
Versions:
|
||||
- MajorVersion: 0
|
||||
MinorVersion: 7
|
||||
PatchVersion: 4
|
||||
Description: 21664
|
||||
FourthVersion: 1
|
||||
- MajorVersion: 0
|
||||
MinorVersion: 7
|
||||
PatchVersion: 4
|
||||
|
||||
@ -361,11 +361,25 @@ public class TechAtomInfo
|
||||
|
||||
public bool CheckCondition(UnitFullType unitFullType)
|
||||
{
|
||||
if (AddSkillRequiresLandAndPort(AddSkillType) && !UnitIsLandAndPort(unitFullType))
|
||||
return false;
|
||||
if(AddSkillCondition.Count == 0) return true;
|
||||
foreach (var t in AddSkillCondition)
|
||||
if (unitFullType.Equals(t)) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool AddSkillRequiresLandAndPort(SkillType skillType)
|
||||
{
|
||||
return skillType is SkillType.HakureiKarviEmbark or SkillType.ValhallaOath;
|
||||
}
|
||||
|
||||
private static bool UnitIsLandAndPort(UnitFullType unitFullType)
|
||||
{
|
||||
return Table.Instance?.UnitTypeDataAssets != null
|
||||
&& Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(unitFullType, out var unitInfo)
|
||||
&& unitInfo.LandType == LandType.LandAndPort;
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
|
||||
@ -2203,6 +2203,31 @@ namespace Logic.Action
|
||||
|
||||
}
|
||||
|
||||
public static UnitFullType GetBigGuyCityLevelUpUnitFullType(PlayerData playerData)
|
||||
{
|
||||
if (playerData == null)
|
||||
return new UnitFullType(UnitType.BigGuy, GiantType.None, 0);
|
||||
|
||||
return GetBigGuyCityLevelUpUnitFullType(playerData.PlayerCivId, playerData.PlayerForceId);
|
||||
}
|
||||
|
||||
public static UnitFullType GetBigGuyCityLevelUpUnitFullType(uint civId, uint forceId)
|
||||
{
|
||||
// Multiple players may share the same Empire; the spawned special BigGuy unit is keyed by Empire.
|
||||
if (civId == 1 && forceId == 1)
|
||||
return new UnitFullType(UnitType.KaguyaFrenchWolf, GiantType.None, 0);
|
||||
if (civId == 0 && forceId == 0)
|
||||
return new UnitFullType(UnitType.RemiliaEgyptianKoakuma, GiantType.None, 0);
|
||||
if (civId == 2 && forceId == 2)
|
||||
return new UnitFullType(UnitType.MoriyaHebi, GiantType.None, 3);
|
||||
if (civId == 3 && forceId == 3)
|
||||
return new UnitFullType(UnitType.KomeijiIndianBigGuy, GiantType.None, 0);
|
||||
if (civId == 4 && forceId == 4)
|
||||
return new UnitFullType(UnitType.HakureiValkyrie, GiantType.None, 0);
|
||||
|
||||
return new UnitFullType(UnitType.BigGuy, GiantType.None, 0);
|
||||
}
|
||||
|
||||
public override bool CompleteExecute(CommonActionParams actionParams)
|
||||
{
|
||||
if (!CheckCanBeforeExecute(actionParams, "CompleteExecute")) return false;
|
||||
@ -2320,18 +2345,7 @@ namespace Logic.Action
|
||||
{
|
||||
if(paramGrid.RealUnit(paramMap,out var unitData))
|
||||
Main.UnitLogic.PassiveMoveAway(paramMap, unitData);
|
||||
var fullType = new UnitFullType(UnitType.BigGuy, GiantType.None, 0);
|
||||
// 注意:多人允许相同 Empire 后,下列硬编码 (Civ,Force) 分支会让多个同 Empire 玩家共享同一特殊巨人单位,符合预期保留逻辑。
|
||||
if(paramPlayer.PlayerCivId == 1 && paramPlayer.PlayerForceId == 1)
|
||||
fullType = new UnitFullType(UnitType.KaguyaFrenchWolf, GiantType.None, 0);
|
||||
if(paramPlayer.PlayerCivId == 0 && paramPlayer.PlayerForceId == 0)
|
||||
fullType = new UnitFullType(UnitType.RemiliaEgyptianKoakuma, GiantType.None, 0);
|
||||
if(paramPlayer.PlayerCivId == 2 && paramPlayer.PlayerForceId == 2)
|
||||
fullType = new UnitFullType(UnitType.MoriyaHebi, GiantType.None, 3);
|
||||
if(paramPlayer.PlayerCivId == 3 && paramPlayer.PlayerForceId == 3)
|
||||
fullType = new UnitFullType(UnitType.KomeijiIndianBigGuy, GiantType.None, 0);
|
||||
if(paramPlayer.PlayerCivId == 4 && paramPlayer.PlayerForceId == 4)
|
||||
fullType = new UnitFullType(UnitType.HakureiValkyrie, GiantType.None, 0);
|
||||
var fullType = GetBigGuyCityLevelUpUnitFullType(paramPlayer);
|
||||
if (!actionParams.MapData.AddUnitData(paramGrid.Id, actionParams.CityData.Id,fullType ,out var _))
|
||||
return false;
|
||||
paramCity.SetCityRenderer(paramMap);
|
||||
@ -2958,14 +2972,10 @@ namespace Logic.Action
|
||||
if (!actionParams.UnitData.IsCanAttackTargetGrid(actionParams.MapData,actionParams.GridData)) return false;
|
||||
|
||||
//Step #4 判断是否有AP
|
||||
var hasSumirekoOrbReady =
|
||||
HakureiNorwayHeroSkillUtil.TryGetSumirekoOccultOrbReady(actionParams.UnitData, out var sumirekoOrbSkill) &&
|
||||
sumirekoOrbSkill.CanShootOccultOrb(actionParams.MapData, actionParams.UnitData, actionParams.GridData);
|
||||
var hasKasenBeastGuideReady =
|
||||
HakureiNorwayHeroSkillUtil.TryGetKasenBeastGuideReady(actionParams.UnitData, out var kasenGuideSkill) &&
|
||||
kasenGuideSkill.CanSetBeastGuide(actionParams.MapData, actionParams.UnitData, actionParams.GridData);
|
||||
if (actionParams.UnitData.GetActionPoint(ActionPointType.Attack) <= 0 &&
|
||||
!hasSumirekoOrbReady &&
|
||||
!hasKasenBeastGuideReady)
|
||||
return false;
|
||||
|
||||
|
||||
@ -609,6 +609,7 @@ namespace TH1_Logic.Action
|
||||
if (_actionId.PlayerActionType == PlayerActionType.DanegeldDemand)
|
||||
{
|
||||
if (!TryGetDanegeldRelation(player, targetPlayer, out var info)) return false;
|
||||
player.SpendCoin(GetDanegeldDemandCost(actionParams));
|
||||
info.DanegeldState = DanegeldState.Demanding;
|
||||
info.LastDanegeldDemandTurn = player.Turn;
|
||||
info.DanegeldRefusedTurn = 0;
|
||||
@ -623,7 +624,7 @@ namespace TH1_Logic.Action
|
||||
|
||||
if (_actionId.PlayerActionType == PlayerActionType.DanegeldPay)
|
||||
{
|
||||
var payAmount = Mathf.Min(Mathf.Max(0, GetCost(actionParams)), Mathf.Max(0, player.PlayerCoin));
|
||||
var payAmount = Mathf.Min(GetDanegeldPaymentAmount(actionParams), Mathf.Max(0, player.PlayerCoin));
|
||||
if (payAmount > 0)
|
||||
{
|
||||
player.SpendCoin(payAmount);
|
||||
@ -656,6 +657,7 @@ namespace TH1_Logic.Action
|
||||
if (_actionId.PlayerActionType == PlayerActionType.DanegeldDemand)
|
||||
{
|
||||
if (!player.TechTree.CheckActionCan(_actionId)) return false;
|
||||
if (player.PlayerCoin < GetDanegeldDemandCost(actionParams)) return false;
|
||||
if (!TryGetDanegeldRelation(player, targetPlayer, out var info)) return false;
|
||||
if (!TryGetDanegeldRelation(targetPlayer, player, out var targetInfo)) return false;
|
||||
if (info.IsTeammate || targetInfo.IsTeammate) return false;
|
||||
@ -684,6 +686,12 @@ namespace TH1_Logic.Action
|
||||
return true;
|
||||
}
|
||||
|
||||
if (actionParams.PlayerData.PlayerCoin < GetDanegeldDemandCost(actionParams))
|
||||
{
|
||||
showType = ShowType.Cost;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!TryGetDanegeldRelation(actionParams.PlayerData, actionParams.TargetPlayerData, out var info))
|
||||
return false;
|
||||
if (!TryGetDanegeldRelation(actionParams.TargetPlayerData, actionParams.PlayerData, out var targetInfo))
|
||||
@ -719,6 +727,8 @@ namespace TH1_Logic.Action
|
||||
return ActionShowState.None;
|
||||
if (!actionParams.PlayerData.TechTree.CheckActionCan(_actionId))
|
||||
return ActionShowState.Unavailable;
|
||||
if (actionParams.PlayerData.PlayerCoin < GetDanegeldDemandCost(actionParams))
|
||||
return ActionShowState.Expensive;
|
||||
if (!TryGetDanegeldRelation(actionParams.PlayerData, actionParams.TargetPlayerData, out var info))
|
||||
return ActionShowState.None;
|
||||
if (!TryGetDanegeldRelation(actionParams.TargetPlayerData, actionParams.PlayerData, out var targetInfo))
|
||||
@ -730,6 +740,29 @@ namespace TH1_Logic.Action
|
||||
return ActionShowState.Available;
|
||||
}
|
||||
|
||||
public override int GetCost(CommonActionParams actionParams)
|
||||
{
|
||||
return _actionId.PlayerActionType == PlayerActionType.DanegeldDemand
|
||||
? GetDanegeldDemandCost(actionParams)
|
||||
: base.GetCost(actionParams);
|
||||
}
|
||||
|
||||
private static int GetDanegeldDemandCost(CommonActionParams actionParams)
|
||||
{
|
||||
var map = actionParams?.MapData;
|
||||
var player = actionParams?.PlayerData;
|
||||
if (map == null || player == null) return 0;
|
||||
return Mathf.Min(map.GetCityCount(player.Id) * 3, 15);
|
||||
}
|
||||
|
||||
private static int GetDanegeldPaymentAmount(CommonActionParams actionParams)
|
||||
{
|
||||
var map = actionParams?.MapData;
|
||||
var player = actionParams?.PlayerData;
|
||||
if (map == null || player == null) return 0;
|
||||
return Mathf.Max(0, Main.PlayerLogic.GetPlayerCoinPerTurn(map, player.Id) / 5);
|
||||
}
|
||||
|
||||
private static bool TryGetDanegeldRelation(PlayerData demander, PlayerData targetPlayer, out CountryDiplomacyInfo info)
|
||||
{
|
||||
info = null;
|
||||
|
||||
@ -828,6 +828,7 @@ namespace Logic.Action
|
||||
|
||||
Main.CityLogic.AddCityRaidedAmount(actionParams.MapData, city, amount);
|
||||
player.AddCoin(amount, grid);
|
||||
HakureiEinherjarCounter.TryAddPlayerPointFromVikingAction(actionParams.MapData, player);
|
||||
unit.ClearActionPoint();
|
||||
unit.Renderer(actionParams.MapData)?.InstantUpdateUnit(true);
|
||||
return true;
|
||||
@ -857,6 +858,7 @@ namespace Logic.Action
|
||||
var unit = actionParams?.UnitData;
|
||||
var player = actionParams?.PlayerData;
|
||||
if (map == null || unit == null || player == null) return false;
|
||||
if (!CanUseRaid(unit)) return false;
|
||||
if (!HasRaidActionPoint(unit)) return false;
|
||||
if (!unit.Grid(map, out grid)) return false;
|
||||
if (!map.GetCityDataByTerritoryGid(grid.Id, out city)) return false;
|
||||
@ -877,6 +879,7 @@ namespace Logic.Action
|
||||
var unit = actionParams?.UnitData;
|
||||
var player = actionParams?.PlayerData;
|
||||
if (unit == null || player?.TechTree == null) return false;
|
||||
if (!CanUseRaid(unit)) return false;
|
||||
if (unit.HasEffectiveSkill(SkillType.ValhallaOath, out _)) return true;
|
||||
if (!player.TechTree.CheckIfHasTechAtom(TechAtom.HakureiNorseGods)) return false;
|
||||
return Table.Instance.TechDataAssets.GetTechAtomInfo(TechAtom.HakureiNorseGods, out var atomInfo)
|
||||
@ -885,6 +888,11 @@ namespace Logic.Action
|
||||
&& atomInfo.CheckCondition(unit.UnitFullType);
|
||||
}
|
||||
|
||||
private static bool CanUseRaid(UnitData unit)
|
||||
{
|
||||
return unit?.GetLandType() == LandType.LandAndPort;
|
||||
}
|
||||
|
||||
private static int GetRaidAmount(CommonActionParams actionParams, PlayerData cityPlayer, int remaining)
|
||||
{
|
||||
var unit = actionParams.UnitData;
|
||||
@ -902,6 +910,7 @@ namespace Logic.Action
|
||||
{
|
||||
private const int WarriorCost = 5;
|
||||
private const int SwordsmanCost = 8;
|
||||
private const SkillType WarCryTiredSkill = SkillType.RECYCLE;
|
||||
|
||||
public UnitActionWarCry(CommonActionId id) : base(id)
|
||||
{
|
||||
@ -914,8 +923,13 @@ namespace Logic.Action
|
||||
var grid = unit.Grid(actionParams.MapData);
|
||||
actionParams.PlayerData.SpendCoin(GetCost(actionParams), grid);
|
||||
unit.AddActionPoint(ActionPointType.Attack);
|
||||
HakureiEinherjarCounter.TryAddPlayerPointFromVikingAction(actionParams.MapData, actionParams.PlayerData);
|
||||
unit.AddSkill_Legacy(SkillType.Berserk, actionParams.MapData, false, 0, false, -1, false,
|
||||
SpecialAddSkillType.Force, unit.Id);
|
||||
unit.AddSkill_Legacy(WarCryTiredSkill, actionParams.MapData, false, 0, false, -1, false,
|
||||
SpecialAddSkillType.Force, unit.Id);
|
||||
if (unit.GetSkill(WarCryTiredSkill, out var tiredSkill))
|
||||
tiredSkill.SetSkillPriority(SkillPriority.Origin);
|
||||
unit.Renderer(actionParams.MapData)?.InstantUpdateUnit(true);
|
||||
return true;
|
||||
}
|
||||
@ -943,7 +957,7 @@ namespace Logic.Action
|
||||
if (!UnitActionCheckUnitBelongPlayer(actionParams)) return false;
|
||||
if (!actionParams.PlayerData.TechTree.CheckActionCan(_actionId)) return false;
|
||||
if (!IsWarCryUnit(actionParams.UnitData)) return false;
|
||||
if (actionParams.UnitData.HasEffectiveSkill(SkillType.Berserk, out _)) return false;
|
||||
if (actionParams.UnitData.GetSkill(WarCryTiredSkill, out _)) return false;
|
||||
var cost = GetCost(actionParams);
|
||||
if (cost <= 0) return false;
|
||||
if (actionParams.PlayerData.PlayerCoin < cost) showType = ShowType.Cost;
|
||||
|
||||
@ -69,6 +69,8 @@ namespace TH1_Logic.HeroTask
|
||||
AccumulateCaptureOtherCitiesOrVillages,
|
||||
// 累计承受伤害和造成伤害
|
||||
AccumulateDamageTakenAndDealt,
|
||||
// 设置灵异珠
|
||||
SetSumirekoOccultOrb,
|
||||
}
|
||||
|
||||
|
||||
@ -97,6 +99,7 @@ namespace TH1_Logic.HeroTask
|
||||
[MemoryPackUnion(22, typeof(HeroTaskContentTargetAccumulateRelicsOpenedIncludeOthers))]
|
||||
[MemoryPackUnion(23, typeof(HeroTaskContentAccumulateCaptureOtherCitiesOrVillages))]
|
||||
[MemoryPackUnion(24, typeof(HeroTaskContentAccumulateDamageTakenAndDealt))]
|
||||
[MemoryPackUnion(25, typeof(HeroTaskContentSetSumirekoOccultOrb))]
|
||||
public abstract partial class HeroTaskContentBase
|
||||
{
|
||||
public bool IsSelf;
|
||||
@ -286,6 +289,10 @@ namespace TH1_Logic.HeroTask
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public virtual void OnSetSumirekoOccultOrb(MapData mapData, UnitData sumireko, UnitData orb)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -936,4 +943,31 @@ namespace TH1_Logic.HeroTask
|
||||
Level++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[MemoryPackable]
|
||||
public partial class HeroTaskContentSetSumirekoOccultOrb : HeroTaskContentBase
|
||||
{
|
||||
public override HeroTaskContentType GetContentType()
|
||||
{
|
||||
return HeroTaskContentType.SetSumirekoOccultOrb;
|
||||
}
|
||||
|
||||
public override HeroTaskContentBase GetCopyHeroTaskContent()
|
||||
{
|
||||
var newContent = new HeroTaskContentSetSumirekoOccultOrb();
|
||||
newContent.Level = Level;
|
||||
newContent.TargetLevel = TargetLevel;
|
||||
return newContent;
|
||||
}
|
||||
|
||||
public override void OnSetSumirekoOccultOrb(MapData mapData, UnitData sumireko, UnitData orb)
|
||||
{
|
||||
if (sumireko == null || orb == null) return;
|
||||
if (sumireko.UnitType != UnitType.Giant || sumireko.GiantType != GiantType.NorwaySumireko) return;
|
||||
if (orb.UnitType is not (UnitType.SumirekoNorwayOrb or UnitType.SumirekoDenmarkOrb or UnitType.SumirekoEnglandOrb))
|
||||
return;
|
||||
Level++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -59,6 +59,8 @@ namespace TH1_Logic.HeroTask
|
||||
return "单位X 给任何单位增加N次技能A的层数,X的该计数+N";
|
||||
if (contentType == HeroTaskContentType.SkillActivation)
|
||||
return "单位X 的技能A 生效时(接口,技能自定义),则该计数变化(技能自定义)";
|
||||
if (contentType == HeroTaskContentType.SetSumirekoOccultOrb)
|
||||
return "设置灵异珠";
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@ -1298,17 +1298,10 @@ namespace Logic
|
||||
{
|
||||
if (!Table.Instance.TechDataAssets.GetTechAtomInfo(techAtom, out var atomInfo)) continue;
|
||||
if (!atomInfo.IsAddSkill) continue;
|
||||
//是否给全员增加,还是有条件增加
|
||||
bool forAll = atomInfo.AddSkillCondition.Count == 0;
|
||||
using var pooledCondition = THCollectionPool.GetHashSetHandle<UnitFullType>(out var condition);
|
||||
if (!forAll)
|
||||
{
|
||||
condition.UnionWith(atomInfo.AddSkillCondition);
|
||||
}
|
||||
foreach (var unit in mapData.UnitMap.UnitList)
|
||||
{
|
||||
if (!mapData.CheckUnitIdBelongPlayerId(unit.Id, playerData.Id)) continue;
|
||||
if (!forAll && !condition.Contains(unit.UnitFullType)) continue;
|
||||
if (!atomInfo.CheckCondition(unit.UnitFullType)) continue;
|
||||
unit.AddSkill_Legacy(atomInfo.AddSkillType, mapData, true, -1, false, -1, false,
|
||||
SpecialAddSkillType.Force, 0);
|
||||
//TODO 森林防御刷新视觉的临时写法
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
|
||||
|
||||
using System;
|
||||
using MemoryPack;
|
||||
using RuntimeData;
|
||||
|
||||
|
||||
@ -40,7 +39,6 @@ namespace Logic.Skill
|
||||
}
|
||||
}
|
||||
|
||||
[MemoryPackable]
|
||||
public partial class CityRaidedSkill : SkillBase
|
||||
{
|
||||
public int RaidedAmount;
|
||||
|
||||
@ -27,13 +27,14 @@ namespace Logic.Skill
|
||||
|
||||
public override bool IsCanMoveOnTerrain(UnitData self, MapData mapData, TerrainType terrainType)
|
||||
{
|
||||
return terrainType == TerrainType.ShallowSea;
|
||||
return IsValidOwner(self) && terrainType == TerrainType.ShallowSea;
|
||||
}
|
||||
|
||||
public override bool TryGetLandToBoatTarget(UnitData self, MapData mapData, GridData targetGrid,
|
||||
out UnitFullType targetFullType)
|
||||
{
|
||||
targetFullType = new UnitFullType();
|
||||
if (!IsValidOwner(self)) return false;
|
||||
if (targetGrid == null || targetGrid.Terrain != TerrainType.ShallowSea)
|
||||
return false;
|
||||
|
||||
@ -47,11 +48,17 @@ namespace Logic.Skill
|
||||
public override void AfterTransformFromBoat(UnitData self, GridData grid, MapData mapData, MoveType moveType,
|
||||
List<Vector2Int> path = null)
|
||||
{
|
||||
if (!IsValidOwner(self)) return;
|
||||
if (moveType != MoveType.ActiveMove) return;
|
||||
if (!self.GetSkill(SkillType.DASH, out var skill) || skill is not DashSkill dashSkill) return;
|
||||
dashSkill.TryTriggerMoveBonus(self, moveType);
|
||||
}
|
||||
|
||||
private static bool IsValidOwner(UnitData self)
|
||||
{
|
||||
return self?.GetLandType() == LandType.LandAndPort;
|
||||
}
|
||||
|
||||
private static bool IsHakureiHarbor(MapData mapData, GridData targetGrid)
|
||||
{
|
||||
if (targetGrid.Resource != ResourceType.Port) return false;
|
||||
|
||||
@ -158,6 +158,21 @@ namespace Logic.Skill
|
||||
return sumirekoPlayer.Id == orbPlayer.Id;
|
||||
}
|
||||
|
||||
public static bool IsAroundUsableSumirekoOccultOrbAnchor(MapData map, UnitData sumireko, GridData target)
|
||||
{
|
||||
if (map?.UnitMap?.UnitList == null || !IsSumireko(sumireko) || target == null) return false;
|
||||
foreach (var orb in map.UnitMap.UnitList)
|
||||
{
|
||||
if (orb == null || !orb.IsAlive()) continue;
|
||||
if (!CanUseOccultOrbAsMoveAnchor(map, sumireko, orb)) continue;
|
||||
if (!orb.Grid(map, out var orbGrid)) continue;
|
||||
if (map.GridMap.CalcDistance(orbGrid, target) <= SumirekoOrbAuraRange)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool IsSumirekoOrbAuraSkill(SkillType skillType)
|
||||
{
|
||||
return skillType is SkillType.SumirekoNorwayOrbSwapMoveAttack
|
||||
@ -739,11 +754,21 @@ namespace Logic.Skill
|
||||
public override void OnMove(UnitData self, GridData grid, MapData mapData, MoveType moveType,
|
||||
List<Vector2Int> path = null)
|
||||
{
|
||||
if (moveType != MoveType.ActiveMove || !HakureiNorwayHeroSkillUtil.IsSumireko(self)) return;
|
||||
if (!HakureiNorwayHeroSkillUtil.IsSumireko(self)) return;
|
||||
if (!IsOccultOrbChargeMove(mapData, self, grid, moveType)) return;
|
||||
if (Turns != 0) return;
|
||||
SetOccultOrbLevel(mapData, self, 1);
|
||||
self.AddActionPoint(ActionPointType.Attack);
|
||||
Turns = 1;
|
||||
HakureiNorwayHeroSkillUtil.PlaySkillIcon(mapData, self, SkillType.SumirekoOccultOrbOwner);
|
||||
self.Renderer(mapData)?.InstantUpdateUnit(false);
|
||||
}
|
||||
|
||||
private static bool IsOccultOrbChargeMove(MapData map, UnitData self, GridData target, MoveType moveType)
|
||||
{
|
||||
if (moveType == MoveType.ActiveMove) return true;
|
||||
return moveType == MoveType.SkillMove
|
||||
&& HakureiNorwayHeroSkillUtil.IsAroundUsableSumirekoOccultOrbAnchor(map, self, target);
|
||||
}
|
||||
|
||||
public override bool IsCanAttackTargetGrid(MapData map, UnitData self, GridData target)
|
||||
@ -769,8 +794,10 @@ namespace Logic.Skill
|
||||
if (HakureiNorwayHeroSkillUtil.HeroLevel(self) >= 4)
|
||||
orb.AddOrOverrideSkill(SkillType.SumirekoOrbSwapMaxValue, map, self.Id);
|
||||
HakureiNorwayHeroSkillUtil.RefreshSumirekoOccultOrbBuffsAround(map, orb);
|
||||
self.HeroTask(map)?.OnSetSumirekoOccultOrb(map, self, orb);
|
||||
|
||||
ConsumeOccultOrbReady(map, self);
|
||||
self.ClearActionPoint();
|
||||
self.Renderer(map)?.InstantUpdateUnit(false);
|
||||
return true;
|
||||
}
|
||||
@ -789,6 +816,7 @@ namespace Logic.Skill
|
||||
public bool CanShootOccultOrb(MapData map, UnitData self, GridData target)
|
||||
{
|
||||
return self != null
|
||||
&& self.GetActionPoint(ActionPointType.Attack) > 0
|
||||
&& Level > 0
|
||||
&& HakureiNorwayHeroSkillUtil.TryResolveSumirekoOrbGrid(map, self, target, out _, out _);
|
||||
}
|
||||
@ -930,7 +958,6 @@ namespace Logic.Skill
|
||||
proxySkill.ReduceLevel(mapData, orb, 1);
|
||||
if (proxySkill.Level <= 0)
|
||||
HakureiNorwayHeroSkillUtil.RefreshSumirekoOccultOrbBuffsAround(mapData, orb);
|
||||
orb.Renderer(mapData)?.InstantUpdateUnit(false);
|
||||
}
|
||||
|
||||
public override void OnSelfCreated(MapData map, UnitData self)
|
||||
|
||||
@ -605,7 +605,6 @@ namespace Logic.Skill
|
||||
public override void BeforeDamagedSupportStage(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
if (info?.DamageTarget == null || info.DamageValue <= 0 || Level <= 0) return;
|
||||
if (TryApplyValkyrieProtection(mapData, info)) return;
|
||||
|
||||
var absorb = Mathf.Min(Level, info.DamageValue);
|
||||
info.DamageValue -= absorb;
|
||||
@ -618,21 +617,6 @@ namespace Logic.Skill
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryApplyValkyrieProtection(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
if (mapData == null || info?.DamageTarget == null || OriginId == 0) return false;
|
||||
if (!mapData.UnitMap.GetUnitDataByUnitId(OriginId, out var valkyrie)) return false;
|
||||
if (valkyrie == null || valkyrie.UnitType != UnitType.HakureiValkyrie) return false;
|
||||
if (!valkyrie.IsAlive() || valkyrie.Id == info.DamageTarget.Id) return true;
|
||||
if (!mapData.GetPlayerDataByUnitId(valkyrie.Id, out var valkyriePlayer) ||
|
||||
!mapData.GetPlayerDataByUnitId(info.DamageTarget.Id, out var targetPlayer)) return true;
|
||||
if (!mapData.SameUnion(valkyriePlayer.Id, targetPlayer.Id)) return true;
|
||||
|
||||
info.DamageBearer = valkyrie;
|
||||
valkyrie.Renderer(mapData)?.InstantUpdateUnit(false);
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool ReservedOnTransform(UnitData self, UnitFullType fullType)
|
||||
{
|
||||
return true;
|
||||
|
||||
@ -14,12 +14,6 @@ namespace Logic.Skill
|
||||
{
|
||||
public partial class ValhallaOathSkill : SkillBase
|
||||
{
|
||||
private const int ValkyrieAuraRange = 1;
|
||||
private const int ValkyrieMoveHeal = 2;
|
||||
private const int ValkyrieDeathHeal = 5;
|
||||
private const int ValkyrieProtectionTurns = 1;
|
||||
private const int ValkyrieProtectionLevel = 1;
|
||||
|
||||
public ValhallaOathSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
@ -32,36 +26,12 @@ namespace Logic.Skill
|
||||
return SkillType.ValhallaOath;
|
||||
}
|
||||
|
||||
public override void OnMove(UnitData self, GridData grid, MapData mapData, MoveType moveType,
|
||||
System.Collections.Generic.List<Vector2Int> path = null)
|
||||
{
|
||||
if (!IsValkyrie(self) || mapData == null || grid == null) return;
|
||||
if (moveType is MoveType.PassiveMove or MoveType.PushMove) return;
|
||||
|
||||
var around = RentAroundBuf();
|
||||
mapData.GridMap.GetAroundGridData(ValkyrieAuraRange, ValkyrieAuraRange, grid, around);
|
||||
foreach (var aroundGrid in around)
|
||||
{
|
||||
if (aroundGrid == grid) continue;
|
||||
if (!aroundGrid.RealUnit(mapData, out var target)) continue;
|
||||
if (!SameUnion(mapData, self, target)) continue;
|
||||
Main.UnitLogic.RecoverHealth(mapData, self, target, ValkyrieMoveHeal);
|
||||
}
|
||||
ReturnAroundBuf();
|
||||
}
|
||||
|
||||
public override void OnAnyUnitDie(MapData map, UnitData self, UnitData dieUnit)
|
||||
{
|
||||
if (map == null || self == null || dieUnit == null) return;
|
||||
|
||||
if (IsValkyrie(self) && self.Id != dieUnit.Id && self.IsAlive() &&
|
||||
IsNear(map, self, dieUnit, ValkyrieAuraRange) &&
|
||||
SameUnion(map, self, dieUnit))
|
||||
{
|
||||
Main.UnitLogic.RecoverHealth(map, self, self, ValkyrieDeathHeal);
|
||||
}
|
||||
|
||||
if (self.Id != dieUnit.Id) return;
|
||||
if (self.GetLandType() != LandType.LandAndPort) return;
|
||||
if (self.Player(map, out var player))
|
||||
{
|
||||
HakureiEinherjarCounter.AddPlayerPoints(map, player, 1);
|
||||
@ -87,6 +57,104 @@ namespace Logic.Skill
|
||||
or ResourceType.Treasure
|
||||
or ResourceType.HakureiRune;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ValkyrieSkillUtil
|
||||
{
|
||||
public const int AuraRange = 1;
|
||||
public const int MoveHeal = 2;
|
||||
public const int DeathHeal = 5;
|
||||
public const int ProtectionTurns = 1;
|
||||
public const int ProtectionLevel = 1;
|
||||
|
||||
public static bool IsValkyrie(UnitData unit)
|
||||
{
|
||||
return unit != null && unit.UnitType == UnitType.HakureiValkyrie;
|
||||
}
|
||||
|
||||
public static bool IsNear(MapData map, UnitData self, UnitData target, int range)
|
||||
{
|
||||
if (map == null || self == null || target == null) return false;
|
||||
if (!self.Grid(map, out var selfGrid) || !target.Grid(map, out var targetGrid)) return false;
|
||||
return map.GridMap.CalcDistance(selfGrid, targetGrid) <= range;
|
||||
}
|
||||
|
||||
public static bool SameUnion(MapData map, UnitData self, UnitData target)
|
||||
{
|
||||
if (map == null || self == null || target == null) return false;
|
||||
if (!map.GetPlayerDataByUnitId(self.Id, out var selfPlayer)) return false;
|
||||
if (!map.GetPlayerDataByUnitId(target.Id, out var targetPlayer)) return false;
|
||||
return map.SameUnion(selfPlayer.Id, targetPlayer.Id);
|
||||
}
|
||||
|
||||
public static bool IsValidProtectionTarget(MapData map, UnitData valkyrie, UnitData target)
|
||||
{
|
||||
return IsValkyrie(valkyrie)
|
||||
&& valkyrie.IsAlive()
|
||||
&& target != null
|
||||
&& target.IsAlive()
|
||||
&& valkyrie.Id != target.Id
|
||||
&& IsNear(map, valkyrie, target, AuraRange)
|
||||
&& SameUnion(map, valkyrie, target);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class ValkyrieMoveHealSkill : SkillBase
|
||||
{
|
||||
public ValkyrieMoveHealSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 3;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.ValkyrieMoveHeal;
|
||||
}
|
||||
|
||||
public override void OnMove(UnitData self, GridData grid, MapData mapData, MoveType moveType,
|
||||
System.Collections.Generic.List<Vector2Int> path = null)
|
||||
{
|
||||
if (!ValkyrieSkillUtil.IsValkyrie(self) || mapData == null || grid == null) return;
|
||||
if (moveType is MoveType.PassiveMove or MoveType.PushMove) return;
|
||||
|
||||
var around = RentAroundBuf();
|
||||
mapData.GridMap.GetAroundGridData(ValkyrieSkillUtil.AuraRange, ValkyrieSkillUtil.AuraRange, grid, around);
|
||||
foreach (var aroundGrid in around)
|
||||
{
|
||||
if (aroundGrid == grid) continue;
|
||||
if (!aroundGrid.RealUnit(mapData, out var target)) continue;
|
||||
if (!ValkyrieSkillUtil.SameUnion(mapData, self, target)) continue;
|
||||
Main.UnitLogic.RecoverHealth(mapData, self, target, ValkyrieSkillUtil.MoveHeal);
|
||||
}
|
||||
ReturnAroundBuf();
|
||||
}
|
||||
|
||||
public override void OnAnyUnitDie(MapData map, UnitData self, UnitData dieUnit)
|
||||
{
|
||||
if (map == null || self == null || dieUnit == null) return;
|
||||
if (!ValkyrieSkillUtil.IsValkyrie(self)) return;
|
||||
if (self.Id == dieUnit.Id || !self.IsAlive()) return;
|
||||
if (!ValkyrieSkillUtil.IsNear(map, self, dieUnit, ValkyrieSkillUtil.AuraRange)) return;
|
||||
|
||||
Main.UnitLogic.RecoverHealth(map, self, self, ValkyrieSkillUtil.DeathHeal);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class ValkyrieProtectionCasterSkill : SkillBase
|
||||
{
|
||||
public ValkyrieProtectionCasterSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 3;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.ValkyrieProtectionCaster;
|
||||
}
|
||||
|
||||
public override bool IsCanAttackAlly()
|
||||
{
|
||||
@ -95,18 +163,12 @@ namespace Logic.Skill
|
||||
|
||||
public override int GetAttackAllyRange(MapData mapData, UnitData self)
|
||||
{
|
||||
return IsValkyrie(self) ? ValkyrieAuraRange : 0;
|
||||
return ValkyrieSkillUtil.IsValkyrie(self) ? ValkyrieSkillUtil.AuraRange : 0;
|
||||
}
|
||||
|
||||
public override bool IsCanAttackTargetAlly(MapData map, UnitData self, UnitData target)
|
||||
{
|
||||
return IsValkyrie(self)
|
||||
&& self.IsAlive()
|
||||
&& target != null
|
||||
&& target.IsAlive()
|
||||
&& self.Id != target.Id
|
||||
&& IsNear(map, self, target, ValkyrieAuraRange)
|
||||
&& SameUnion(map, self, target);
|
||||
return ValkyrieSkillUtil.IsValidProtectionTarget(map, self, target);
|
||||
}
|
||||
|
||||
public override bool AttackAllyEnable(MapData mapData, UnitData self, UnitData target)
|
||||
@ -122,32 +184,41 @@ namespace Logic.Skill
|
||||
public override bool AttackAllyExecute(MapData mapData, UnitData self, UnitData target)
|
||||
{
|
||||
if (!IsCanAttackTargetAlly(mapData, self, target)) return false;
|
||||
target.AddSkill_Legacy(SkillType.HakureiProtection, mapData, false, ValkyrieProtectionTurns, true,
|
||||
ValkyrieProtectionLevel, true, SpecialAddSkillType.Force, self.Id);
|
||||
if (target.GetSkill(SkillType.HakureiProtection, out var protection))
|
||||
protection.OnSkillAdd(mapData, self.Id);
|
||||
target.AddSkill_Legacy(SkillType.ValkyrieProtection, mapData, false,
|
||||
ValkyrieSkillUtil.ProtectionTurns, true, ValkyrieSkillUtil.ProtectionLevel, true,
|
||||
SpecialAddSkillType.Force, self.Id);
|
||||
target.Renderer(mapData)?.InstantUpdateUnit(false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsValkyrie(UnitData unit)
|
||||
public partial class ValkyrieProtectionSkill : SkillBase
|
||||
{
|
||||
public ValkyrieProtectionSkill()
|
||||
{
|
||||
return unit != null && unit.UnitType == UnitType.HakureiValkyrie;
|
||||
IsPermanent = false;
|
||||
TurnsLimit = ValkyrieSkillUtil.ProtectionTurns;
|
||||
IsLevelSkill = true;
|
||||
_autoDisappear = true;
|
||||
_levelLimit = 1;
|
||||
Score = 3;
|
||||
}
|
||||
|
||||
private static bool IsNear(MapData map, UnitData self, UnitData target, int range)
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
if (map == null || self == null || target == null) return false;
|
||||
if (!self.Grid(map, out var selfGrid) || !target.Grid(map, out var targetGrid)) return false;
|
||||
return map.GridMap.CalcDistance(selfGrid, targetGrid) <= range;
|
||||
return SkillType.ValkyrieProtection;
|
||||
}
|
||||
|
||||
private static bool SameUnion(MapData map, UnitData self, UnitData target)
|
||||
public override void BeforeDamagedSupportStage(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
if (map == null || self == null || target == null) return false;
|
||||
if (!map.GetPlayerDataByUnitId(self.Id, out var selfPlayer)) return false;
|
||||
if (!map.GetPlayerDataByUnitId(target.Id, out var targetPlayer)) return false;
|
||||
return map.SameUnion(selfPlayer.Id, targetPlayer.Id);
|
||||
if (mapData == null || info?.DamageTarget == null || info.DamageValue <= 0 || info.DamageBearer != null)
|
||||
return;
|
||||
if (OriginId == 0) return;
|
||||
if (!mapData.UnitMap.GetUnitDataByUnitId(OriginId, out var valkyrie)) return;
|
||||
if (!ValkyrieSkillUtil.IsValidProtectionTarget(mapData, valkyrie, info.DamageTarget)) return;
|
||||
|
||||
info.DamageBearer = valkyrie;
|
||||
valkyrie.Renderer(mapData)?.InstantUpdateUnit(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -230,6 +301,12 @@ namespace Logic.Skill
|
||||
AddCounterLevel(player, map, SkillType.HakureiEinherjarPoint, amount);
|
||||
}
|
||||
|
||||
public static void TryAddPlayerPointFromVikingAction(MapData map, PlayerData player)
|
||||
{
|
||||
if (!IsHakureiVikingPlayer(player)) return;
|
||||
AddPlayerPoints(map, player, 1);
|
||||
}
|
||||
|
||||
public static bool TrySpendPlayerPoints(MapData map, PlayerData player, int cost)
|
||||
{
|
||||
if (player == null || cost < 0) return false;
|
||||
@ -244,6 +321,13 @@ namespace Logic.Skill
|
||||
AddCounterLevel(city, map, SkillType.HakureiCityEinherjarOffering, amount);
|
||||
}
|
||||
|
||||
private static bool IsHakureiVikingPlayer(PlayerData player)
|
||||
{
|
||||
return player != null
|
||||
&& player.CivEnum == CivEnum.Norway
|
||||
&& player.ForceEnum == ForceEnum.Reimu;
|
||||
}
|
||||
|
||||
private static int GetCounterLevel(IdentifierBase owner, SkillType skillType)
|
||||
{
|
||||
if (owner == null) return 0;
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
// Auto-generated AlwaysHideSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class AlwaysHideSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb0f03fa9414abe4f9cd4ca76014b0ec
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,13 @@
|
||||
// Auto-generated CityRaidedSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class CityRaidedSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eea2f8e4bb8d40c45b353474b6eb7071
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,13 @@
|
||||
// Auto-generated DisperseSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class DisperseSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a053e7180dc44434a98557a1674a4840
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -2,6 +2,7 @@
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
// Auto-generated ItemSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class ItemSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7433893c5be13f848b627665618502ef
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -311,6 +311,12 @@ namespace Logic.Skill
|
||||
[MemoryPackUnion(303, typeof(HakureiDragonshipRamSkill))]
|
||||
[MemoryPackUnion(304, typeof(CityRaidedSkill))]
|
||||
[MemoryPackUnion(305, typeof(BerserkSkill))]
|
||||
[MemoryPackUnion(306, typeof(DisperseSkill))]
|
||||
[MemoryPackUnion(307, typeof(ItemSkill))]
|
||||
[MemoryPackUnion(308, typeof(AlwaysHideSkill))]
|
||||
[MemoryPackUnion(309, typeof(ValkyrieMoveHealSkill))]
|
||||
[MemoryPackUnion(310, typeof(ValkyrieProtectionCasterSkill))]
|
||||
[MemoryPackUnion(311, typeof(ValkyrieProtectionSkill))]
|
||||
public abstract partial class SkillBase
|
||||
{
|
||||
}
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
// Auto-generated ValkyrieMoveHealSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class ValkyrieMoveHealSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 66e57d8041bb456cae50b93c7968b2ed
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,13 @@
|
||||
// Auto-generated ValkyrieProtectionCasterSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class ValkyrieProtectionCasterSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 446f27e3d7854ef59533308b91a2aa34
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,13 @@
|
||||
// Auto-generated ValkyrieProtectionSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class ValkyrieProtectionSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4d80f9a15ff04b968c094428df419ee8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -358,6 +358,9 @@ public enum SkillType
|
||||
Disperse = 317,
|
||||
Item = 318,
|
||||
AlwaysHide = 319,
|
||||
ValkyrieMoveHeal = 320,
|
||||
ValkyrieProtectionCaster = 321,
|
||||
ValkyrieProtection = 322,
|
||||
//补充之前的bug问题
|
||||
Max = 999,
|
||||
}
|
||||
|
||||
@ -88,6 +88,9 @@ namespace Logic
|
||||
// 用于 SakuyaGuard 这类"代为承受伤害"语义:原目标算被打过(被动正常触发)但不掉血,血由 Bearer 来扣。
|
||||
// Bearer 死亡不计入攻击者的 TotalKill / killHero 等 moment。
|
||||
public UnitData DamageBearer;
|
||||
public GridData DamageBearerGrid;
|
||||
public CityData DamageBearerCity;
|
||||
public bool DamageBearerKilled;
|
||||
//是否击杀
|
||||
public bool IsKill;
|
||||
//是否已有死亡替换技能触发(防止多个死亡替换技能同时生成单位)
|
||||
@ -546,13 +549,61 @@ namespace Logic
|
||||
var bearer = settlement.DamageBearer;
|
||||
if (bearer != null)
|
||||
{
|
||||
settlement.DamageBearerGrid = bearer.Grid(mapData);
|
||||
settlement.DamageBearerCity = bearer.City(mapData);
|
||||
var bearerRenderer = bearer.Renderer(mapData);
|
||||
var bearerCanBeKilled = bearer.CanBeKilled(mapData);
|
||||
settlement.HealthReduceValue = Mathf.Min(bearer.Health, settlement.DamageValue);
|
||||
bearer.Health -= settlement.DamageValue;
|
||||
if (bearer.CanBeKilled(mapData) && !bearer.IsAlive())
|
||||
if (bearerCanBeKilled && !bearer.IsAlive())
|
||||
{
|
||||
UnitDie(mapData, bearer, settlement.DamageValue);
|
||||
settlement.DamageBearerKilled = true;
|
||||
}
|
||||
settlement.IsKill = false;
|
||||
if (mapData == Main.MapData)
|
||||
{
|
||||
void RefreshBearerVisual()
|
||||
{
|
||||
var bearerGridRenderer = settlement.DamageBearerGrid?.Renderer(mapData);
|
||||
bearerGridRenderer?.PlayVFXInSight(new GridVFXParams(GridVFXType.Hurt));
|
||||
bearerGridRenderer?.PlayVFXInSight(new GridVFXParams(GridVFXType.Damage, settlement.DamageValue));
|
||||
|
||||
if (settlement.DamageBearerKilled)
|
||||
{
|
||||
bearerGridRenderer?.PlayVFXInSight(new GridVFXParams(GridVFXType.Fog));
|
||||
if (bearerCanBeKilled)
|
||||
bearerGridRenderer?.PlayVFXInSight(new GridVFXParams(GridVFXType.Die));
|
||||
bearerRenderer?.Die();
|
||||
settlement.DamageBearerCity?.SetCityRenderer(mapData);
|
||||
if (settlement.DamageBearerGrid != null)
|
||||
MapRenderer.Instance?.UpdateAroundHighlight(mapData, settlement.DamageBearerGrid);
|
||||
}
|
||||
else
|
||||
{
|
||||
bearerRenderer?.InstantUpdateUnit(false);
|
||||
}
|
||||
|
||||
bearerGridRenderer?.InstantUpdateGrid();
|
||||
}
|
||||
|
||||
var scope = PresentationManager.CurrentScope;
|
||||
if (scope != null)
|
||||
{
|
||||
scope.Add(new FragmentStep
|
||||
{
|
||||
Phase = type == DamageType.CounterAttack
|
||||
? AnimPhase.CounterImpact + 50
|
||||
: AnimPhase.AttackImpact + 50,
|
||||
Duration = 0f,
|
||||
Execute = RefreshBearerVisual
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
RefreshBearerVisual();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1745,7 +1796,9 @@ namespace Logic
|
||||
|
||||
private static int GetSpecialGroundAttackReadyRange(UnitData unitData)
|
||||
{
|
||||
if (HakureiNorwayHeroSkillUtil.TryGetSumirekoOccultOrbReady(unitData, out _))
|
||||
if (unitData != null
|
||||
&& unitData.GetActionPoint(ActionPointType.Attack) > 0
|
||||
&& HakureiNorwayHeroSkillUtil.TryGetSumirekoOccultOrbReady(unitData, out _))
|
||||
return 3;
|
||||
if (HakureiNorwayHeroSkillUtil.TryGetKasenBeastGuideReady(unitData, out _))
|
||||
return 4;
|
||||
@ -1887,7 +1940,7 @@ namespace Logic
|
||||
if (unitData == null || gridData == null) return false;
|
||||
if (gridData.Terrain != TerrainType.ShallowSea) return false;
|
||||
if (gridData.Resource == ResourceType.Bridge) return false;
|
||||
if (unitData.GetLandType() is not (LandType.LandAndPort or LandType.LandOnly)) return false;
|
||||
if (unitData.GetLandType() is not LandType.LandAndPort) return false;
|
||||
return unitData.GetSkill(SkillType.HakureiKarviEmbark, out _);
|
||||
}
|
||||
|
||||
|
||||
@ -88,6 +88,8 @@ namespace TH1_Renderer
|
||||
_houseList.Add(mono);
|
||||
obj.SetActive(true);
|
||||
}
|
||||
for (int i = 0; i < level && i < _houseList.Count; i++)
|
||||
_houseList[i]?.gameObject.SetActive(true);
|
||||
for(int i = level;i < _houseList.Count;i++)
|
||||
_houseList[i]?.gameObject.SetActive(false);
|
||||
|
||||
|
||||
@ -747,10 +747,11 @@ namespace TH1Renderer
|
||||
Main.MapData.GetGridDataByUnitId(uid, out var gridData);
|
||||
Main.MapData.GetPlayerDataByUnitId(uid, out var playerData);
|
||||
if (unitData == null || gridData == null || playerData == null) return false;
|
||||
var hasAttackPoint = unitData.GetActionPoint(ActionPointType.Attack) > 0;
|
||||
var hasSpecialGroundAttackReady =
|
||||
HakureiNorwayHeroSkillUtil.TryGetSumirekoOccultOrbReady(unitData, out _) ||
|
||||
(hasAttackPoint && HakureiNorwayHeroSkillUtil.TryGetSumirekoOccultOrbReady(unitData, out _)) ||
|
||||
HakureiNorwayHeroSkillUtil.TryGetKasenBeastGuideReady(unitData, out _);
|
||||
if (unitData.GetActionPoint(ActionPointType.Attack) <= 0 && unitData.GetActionPoint(ActionPointType.Move) <= 0 &&
|
||||
if (!hasAttackPoint && unitData.GetActionPoint(ActionPointType.Move) <= 0 &&
|
||||
!hasSpecialGroundAttackReady) return false;
|
||||
if (Main.UnitLogic.HasMoveTargetFromMoveInfo(Main.MapData, unitData, playerData)) return true;
|
||||
return Main.UnitLogic.HasAttackTargetFromMoveInfo(Main.MapData, unitData, playerData, gridData);
|
||||
|
||||
@ -163,8 +163,15 @@ namespace TH1_UI.View.Info
|
||||
//吃饭回来:测试图标是否跟着环境变化,尤其要测永远亭
|
||||
}
|
||||
|
||||
SetActionInfoText(Title, info.GetActionName(civ, force, gridSp));
|
||||
ActionImg.sprite = info.GetIcon(civ,force,gridSp);
|
||||
var title = info.GetActionName(civ, force, gridSp);
|
||||
var actionSprite = info.GetIcon(civ,force,gridSp);
|
||||
if (TryGetCityLevelUpBigGuyUnitInfo(actionId, param, out var bigGuyUnitInfo))
|
||||
{
|
||||
title = bigGuyUnitInfo.Name;
|
||||
actionSprite = bigGuyUnitInfo.Sprite != null ? bigGuyUnitInfo.Sprite : actionSprite;
|
||||
}
|
||||
SetActionInfoText(Title, title);
|
||||
ActionImg.sprite = actionSprite;
|
||||
IconSizingUtility.SetIconSize(ActionImg,info.IconViewSizeType,true);
|
||||
|
||||
//Step #2 确定背景图是groundcircle还是普通circle
|
||||
@ -343,6 +350,18 @@ namespace TH1_UI.View.Info
|
||||
text.text = value ?? "";
|
||||
}
|
||||
|
||||
private static bool TryGetCityLevelUpBigGuyUnitInfo(CommonActionId actionId, CommonActionParams param, out UnitTypeInfo unitInfo)
|
||||
{
|
||||
unitInfo = null;
|
||||
if (actionId.ActionType != CommonActionType.CityLevelUpAction ||
|
||||
actionId.CityLevelUpActionType != CityLevelUpActionType.BigGuy)
|
||||
return false;
|
||||
|
||||
var player = param.PlayerData ?? param.CityData?.Player(param.MapData) ?? Main.MapData?.PlayerMap?.SelfPlayerData;
|
||||
var fullType = CityLevelUpActionAction.GetBigGuyCityLevelUpUnitFullType(player);
|
||||
return Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(fullType, out unitInfo);
|
||||
}
|
||||
|
||||
private string GetTreasureOptionTitle(ActionOption option)
|
||||
{
|
||||
if (option == null) return "";
|
||||
|
||||
@ -46,7 +46,6 @@ namespace TH1_UI.View.Info
|
||||
public GameObject VikingPoint;
|
||||
public TextMeshProUGUI VikingCount;
|
||||
private bool _showVikingPoint;
|
||||
private int _lastVikingPoint = int.MinValue;
|
||||
|
||||
[Header("TreeCircle相关")]
|
||||
public List< TechTreeCirclePair > TechTreeCircleMonoList;
|
||||
@ -69,6 +68,7 @@ namespace TH1_UI.View.Info
|
||||
closeButton.onClick.RemoveAllListeners();
|
||||
closeButton.onClick.AddListener(() => { OnBtnCloseClick.Invoke(); });
|
||||
CheckPanel.InitStart(RefreshStatus);
|
||||
EnsureVikingCountDynamicText();
|
||||
|
||||
|
||||
}
|
||||
@ -208,7 +208,6 @@ namespace TH1_UI.View.Info
|
||||
|
||||
if (!_showVikingPoint)
|
||||
{
|
||||
_lastVikingPoint = int.MinValue;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -218,11 +217,19 @@ namespace TH1_UI.View.Info
|
||||
private void RefreshVikingPointValue(PlayerData player)
|
||||
{
|
||||
if (player == null || VikingCount == null) return;
|
||||
EnsureVikingCountDynamicText();
|
||||
var point = HakureiEinherjarCounter.GetPlayerPoints(player);
|
||||
if (_lastVikingPoint == point) return;
|
||||
|
||||
VikingCount.text = point.ToString();
|
||||
_lastVikingPoint = point;
|
||||
}
|
||||
|
||||
private void EnsureVikingCountDynamicText()
|
||||
{
|
||||
if (VikingCount == null) return;
|
||||
var multilingual = VikingCount.GetComponent<MultilingualTextMono>();
|
||||
if (multilingual == null) return;
|
||||
multilingual.Ban = true;
|
||||
multilingual.ID = 0;
|
||||
}
|
||||
|
||||
private static bool ShouldShowVikingPoint(PlayerData player)
|
||||
|
||||
@ -105,7 +105,7 @@ namespace TH1_UI.View.Top
|
||||
TopbarBG.color = isWin ? _winTopbarColor : _loseTextColor;
|
||||
|
||||
AvatarImg.sprite = info.LeaderAvatar;
|
||||
WinPic.sprite = isWin ? info.WinPic : info.LosePic;
|
||||
SetWinPic(isWin ? info.WinPic : info.LosePic);
|
||||
|
||||
WinFlowerDeco.gameObject.SetActive(isWin);
|
||||
CityCount.text = Main.MapData.GetCityCount(Main.MapData.PlayerMap.SelfPlayerData.Id).ToString();
|
||||
@ -132,6 +132,14 @@ namespace TH1_UI.View.Top
|
||||
{
|
||||
AudioManager.Instance.StopMusic();
|
||||
}
|
||||
|
||||
private void SetWinPic(Sprite sprite)
|
||||
{
|
||||
if (WinPic == null) return;
|
||||
|
||||
WinPic.sprite = sprite;
|
||||
WinPic.gameObject.SetActive(sprite != null);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -140,7 +140,7 @@ PlayerSettings:
|
||||
loadStoreDebugModeEnabled: 0
|
||||
visionOSBundleVersion: 1.0
|
||||
tvOSBundleVersion: 1.0
|
||||
bundleVersion: 0.7.4
|
||||
bundleVersion: 0.7.4b
|
||||
preloadedAssets: []
|
||||
metroInputSource: 0
|
||||
wsaTransparentSwapchain: 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user