Compare commits
1 Commits
main
...
wuwenbo/ol
| Author | SHA1 | Date | |
|---|---|---|---|
| 04d188cc52 |
@ -472,148 +472,3 @@ MonoBehaviour:
|
||||
Desc: "\u7D2F\u8BA1\u6B7B\u4EA1**<{param}/{param}>**\u540D**<\u5F02\u7AEF>**"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- GiantType: 16
|
||||
TaskList:
|
||||
- taskContentType: 1
|
||||
Param: 20
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 50
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 100
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- GiantType: 17
|
||||
TaskList:
|
||||
- taskContentType: 1
|
||||
Param: 20
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 50
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 100
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- GiantType: 18
|
||||
TaskList:
|
||||
- taskContentType: 1
|
||||
Param: 20
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 50
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 100
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- GiantType: 19
|
||||
TaskList:
|
||||
- taskContentType: 1
|
||||
Param: 20
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 50
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 100
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- GiantType: 20
|
||||
TaskList:
|
||||
- taskContentType: 1
|
||||
Param: 20
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 50
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
- taskContentType: 1
|
||||
Param: 100
|
||||
SkillParam: 0
|
||||
SpType: 0
|
||||
SkillList:
|
||||
SkillName:
|
||||
Desc: "\u7D2F\u8BA1\u9020\u6210**<{param}/{param}>**\u70B9\u4F24\u5BB3"
|
||||
UnitFullTypes: []
|
||||
TargetBuff:
|
||||
|
||||
@ -192,61 +192,6 @@ MonoBehaviour:
|
||||
\uFF0C\u6301\u7EED0\u56DE\u5408<br> **<------- Lv.4 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**50HP/5\u653B/4\u9632/1\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u767D\u72FC\u7684\u6700\u540E\u901A\u7252]>**\u5168\u573A\u6700\u591A\u540C\u65F6\u5B58\u57283\u4E2A**<\u5F02\u7AEF\u70D9\u5370>**
|
||||
<br>"
|
||||
- GiantType: 16
|
||||
UpgradeText: "**<\u53E4\u660E\u5730\u5E1D\u56FD\u7684\u8BFB\u5FC3\u5996\u602A\uFF1A\u53E4\u660E\u5730\u89C9>**
|
||||
<br> **<-------- Lv.1 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**20HP/2\u653B/2\u9632/1\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.2 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**30HP/2.5\u653B/2\u9632/1\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.3 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**40HP/3\u653B/3\u9632/1\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<------- Lv.4 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**50HP/4\u653B/3\u9632/1\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br>"
|
||||
- GiantType: 17
|
||||
UpgradeText: "**<\u53E4\u660E\u5730\u5E1D\u56FD\u7684\u65E0\u610F\u8BC6\u64CD\u7EB5\u8005\uFF1A\u53E4\u660E\u5730\u604B>**
|
||||
<br> **<-------- Lv.1 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**10HP/0\u653B/3\u9632/3\u79FB\u52A8\u529B/2\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.2 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**20HP/0\u653B/3\u9632/3\u79FB\u52A8\u529B/2\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.3 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**25HP/0\u653B/3\u9632/3\u79FB\u52A8\u529B/2\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<------- Lv.4 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**35HP/0\u653B/3\u9632/3\u79FB\u52A8\u529B/2\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br>"
|
||||
- GiantType: 18
|
||||
UpgradeText: "**<\u53E4\u660E\u5730\u5E1D\u56FD\u7684\u5730\u72F1\u9E26\uFF1A\u7075\u4E4C\u8DEF\u7A7A>**
|
||||
<br> **<-------- Lv.1 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**10HP/1\u653B/2\u9632/1\u79FB\u52A8\u529B/2\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.2 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**20HP/2\u653B/2\u9632/1\u79FB\u52A8\u529B/2\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.3 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**30HP/2\u653B/3\u9632/1\u79FB\u52A8\u529B/2\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<------- Lv.4 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**40HP/3\u653B/3\u9632/1\u79FB\u52A8\u529B/2\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br>"
|
||||
- GiantType: 19
|
||||
UpgradeText: "**<\u53E4\u660E\u5730\u5E1D\u56FD\u7684\u9B3C\u65CF\u8C6A\u6770\uFF1A\u661F\u718A\u52C7\u4EEA>**
|
||||
<br> **<-------- Lv.1 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**10HP/2.5\u653B/1\u9632/2\u79FB\u52A8\u529B/1\u5C04\u7A0B/\u98DE\u884C
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.2 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**15HP/2.5\u653B/2\u9632/2\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.3 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**20HP/3\u653B/2\u9632/3\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<------- Lv.4 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**30HP/4\u653B/3\u9632/3\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br>"
|
||||
- GiantType: 20
|
||||
UpgradeText: "**<\u53E4\u660E\u5730\u5E1D\u56FD\u7684\u706B\u8F66\u732B\uFF1A\u706B\u7130\u732B\u71D0>**
|
||||
<br> **<-------- Lv.1 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**20HP/3\u653B/3\u9632/1\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.2 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**30HP/3.5\u653B/3\u9632/1\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<-------- Lv.3 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**40HP/4\u653B/3\u9632/1\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br> **<------- Lv.4 -------->** <br> **<[\u57FA\u7840\u5C5E\u6027]>**50HP/5\u653B/4\u9632/1\u79FB\u52A8\u529B/1\u5C04\u7A0B
|
||||
<br> **<[\u80FD\u529B:\u5F85\u5B9A]>**\u5360\u4F4D\u6587\u672C
|
||||
<br>"
|
||||
OutsideMultiplayTitleAIPlayer:
|
||||
OutsideMultiplayTitleHost:
|
||||
OutsideMultiplayTitleGuest:
|
||||
|
||||
@ -4073,7 +4073,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4095,7 +4095,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4117,7 +4117,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4139,7 +4139,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 08db2adc08231e842ba71741b9f3fb3b, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4161,7 +4161,7 @@ MonoBehaviour:
|
||||
MoveRange: 3
|
||||
AttackRange: 2
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4183,7 +4183,7 @@ MonoBehaviour:
|
||||
MoveRange: 3
|
||||
AttackRange: 2
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4205,7 +4205,7 @@ MonoBehaviour:
|
||||
MoveRange: 3
|
||||
AttackRange: 2
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4227,7 +4227,7 @@ MonoBehaviour:
|
||||
MoveRange: 3
|
||||
AttackRange: 2
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: f3c529d92a9946745825639f7bf74554, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4249,7 +4249,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 2
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 2402fd4a0df809349bab2260b42a3d5b, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4271,7 +4271,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 2
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 2402fd4a0df809349bab2260b42a3d5b, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4293,7 +4293,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 2
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 2402fd4a0df809349bab2260b42a3d5b, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4315,7 +4315,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 2
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 2402fd4a0df809349bab2260b42a3d5b, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4337,7 +4337,7 @@ MonoBehaviour:
|
||||
MoveRange: 2
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 73ae037f4b5dab74caa7b0457186a8a6, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4359,7 +4359,7 @@ MonoBehaviour:
|
||||
MoveRange: 2
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 73ae037f4b5dab74caa7b0457186a8a6, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4381,7 +4381,7 @@ MonoBehaviour:
|
||||
MoveRange: 3
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 73ae037f4b5dab74caa7b0457186a8a6, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4403,7 +4403,7 @@ MonoBehaviour:
|
||||
MoveRange: 3
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 73ae037f4b5dab74caa7b0457186a8a6, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4425,7 +4425,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 91b74550ff01e84408d84d19f41f0855, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4447,7 +4447,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 91b74550ff01e84408d84d19f41f0855, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4469,7 +4469,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 91b74550ff01e84408d84d19f41f0855, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
@ -4491,7 +4491,7 @@ MonoBehaviour:
|
||||
MoveRange: 1
|
||||
AttackRange: 1
|
||||
Cost: 0
|
||||
Skills: 20000000
|
||||
Skills:
|
||||
Sprite: {fileID: 21300000, guid: 91b74550ff01e84408d84d19f41f0855, type: 3}
|
||||
IsSpriteVarient: 0
|
||||
SpriteList: []
|
||||
|
||||
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: c659b850b20e460f866ed3f696be406b, type: 3}
|
||||
m_Name: VersionConfig
|
||||
m_EditorClassIdentifier:
|
||||
CurVersionId: 608
|
||||
CurVersionId: 610
|
||||
Versions:
|
||||
- MajorVersion: 0
|
||||
MinorVersion: 6
|
||||
|
||||
@ -1326,13 +1326,13 @@ namespace RuntimeData
|
||||
}
|
||||
|
||||
// 当场上有小兵死亡时
|
||||
public void OnAnyUnitDie(MapData map, UnitData dieUnit)
|
||||
public void OnAnyUnitDie(MapData map)
|
||||
{
|
||||
foreach (var unit in UnitMap.UnitList)
|
||||
{
|
||||
//避免在遍历的时候,直接改到了skillsList
|
||||
var copy = new List<SkillBase>(unit.Skills);
|
||||
foreach (var skill in copy) skill.OnAnyUnitDie(map, unit, dieUnit);
|
||||
foreach (var skill in copy) skill.OnAnyUnitDie(map, unit);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1352,7 +1352,7 @@ namespace RuntimeData
|
||||
if (config == null) return;
|
||||
|
||||
// 改为二进制文件扩展名
|
||||
string path = Application.persistentDataPath + "/../Config/match_config.dat";
|
||||
string path = Application.persistentDataPath + "/match_config.dat";
|
||||
int retryCount = 3;
|
||||
|
||||
while (retryCount > 0)
|
||||
@ -1376,7 +1376,7 @@ namespace RuntimeData
|
||||
|
||||
public static MapConfig GetMatchConfig()
|
||||
{
|
||||
string path = Application.persistentDataPath + "/../Config/match_config.dat";
|
||||
string path = Application.persistentDataPath + "/match_config.dat";
|
||||
if (!File.Exists(path)) return null;
|
||||
|
||||
int retryCount = 3;
|
||||
@ -1419,7 +1419,7 @@ namespace RuntimeData
|
||||
if (map == null) return;
|
||||
|
||||
// 改为二进制文件扩展名
|
||||
string path = Application.persistentDataPath + "/../Config/map_archive";
|
||||
string path = Application.persistentDataPath + "/map_archive";
|
||||
if (isBegin) path += "_begin";
|
||||
else if (isEnd) path += "_end";
|
||||
else path += "_continue";
|
||||
@ -1448,7 +1448,7 @@ namespace RuntimeData
|
||||
|
||||
public static MapData GetMapData(bool isMulti = false, bool isBegin = false, bool isEnd = false, uint mapId = 0)
|
||||
{
|
||||
string directory = Application.persistentDataPath + "/../Config/";
|
||||
string directory = Application.persistentDataPath;
|
||||
|
||||
// 构建文件名模式
|
||||
string pattern = "map_archive";
|
||||
|
||||
@ -49,7 +49,7 @@ namespace RuntimeData
|
||||
RefreshSkillDict();
|
||||
if (_skillDict.ContainsKey(skillType))
|
||||
{
|
||||
_skillDict[skillType].OnSkillOverride(mapData, originId, Id);
|
||||
_skillDict[skillType].OnSkillOverride(mapData, originId);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -219,7 +219,7 @@ namespace RuntimeData
|
||||
foreach (var skill in Skills) _skillDict[skill.GetSkillType()] = skill;
|
||||
}
|
||||
|
||||
protected virtual void OnSkillsTurnStart(MapData map)
|
||||
protected void OnSkillsTurnStart(MapData map)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
@ -235,7 +235,7 @@ namespace RuntimeData
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnSkillsAfterTurnStart(MapData map)
|
||||
protected void OnSkillsAfterTurnStart(MapData map)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
@ -244,7 +244,7 @@ namespace RuntimeData
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnSkillsTurnEnd(MapData map)
|
||||
protected void OnSkillsTurnEnd(MapData map)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy) skill.OnTurnEnd(this, map);
|
||||
|
||||
@ -500,19 +500,17 @@ namespace RuntimeData
|
||||
// 全局通知调用
|
||||
public void OnTurnStart(MapData map)
|
||||
{
|
||||
if (IsFrozen()) return;
|
||||
OnSkillsTurnStart(map);
|
||||
}
|
||||
|
||||
public void OnAfterTurnStart(MapData map)
|
||||
{
|
||||
if (IsFrozen()) return;
|
||||
OnSkillsAfterTurnStart(map);
|
||||
}
|
||||
|
||||
public void OnTurnEnd(MapData map)
|
||||
{
|
||||
if (!IsFrozen()) OnSkillsTurnEnd(map);
|
||||
OnSkillsTurnEnd(map);
|
||||
AP = 0;
|
||||
CP = 0;
|
||||
MP = 0;
|
||||
@ -523,10 +521,7 @@ namespace RuntimeData
|
||||
{
|
||||
int v = 1;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
v += skill.GetExtraSight(this,map);
|
||||
}
|
||||
if (map.GetGridDataByUnitId(this.Id, out var grid) && grid.Feature == TerrainFeature.Mountain)
|
||||
v = Mathf.Max(v, 2);
|
||||
return v;
|
||||
@ -537,10 +532,7 @@ namespace RuntimeData
|
||||
{
|
||||
int v = 1;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
v += skill.GetExtraSight(this,map);
|
||||
}
|
||||
if (grid.Feature == TerrainFeature.Mountain)
|
||||
v = Mathf.Max(v, 2);
|
||||
return v;
|
||||
@ -551,7 +543,6 @@ namespace RuntimeData
|
||||
var attackRange = 0;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
attackRange += skill.GetExtraAttackRange(mapData,this);
|
||||
}
|
||||
|
||||
@ -568,7 +559,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (!skill.GetFinalMoveRange(this, out var finalMoveRange)) continue;
|
||||
return finalMoveRange;
|
||||
}
|
||||
@ -585,7 +575,6 @@ namespace RuntimeData
|
||||
var moveRange = info.MoveRange;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
moveRange += skill.GetExtraMoveRange(mapData,this);
|
||||
}
|
||||
|
||||
@ -598,7 +587,6 @@ namespace RuntimeData
|
||||
var isStaticExp = false;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsLimitSelfExp(this, map)) isStaticExp = true;
|
||||
}
|
||||
|
||||
@ -624,11 +612,7 @@ namespace RuntimeData
|
||||
public float GetSpecialSkillBonus(MapData mapData, SkillType skillType)
|
||||
{
|
||||
var value = 1f;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
value *= skill.GetSpecialSkillBonus(mapData, this, skillType);
|
||||
}
|
||||
foreach (var skill in Skills) value *= skill.GetSpecialSkillBonus(mapData, this, skillType);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -667,11 +651,7 @@ namespace RuntimeData
|
||||
public float GetAttackAdditionParam(MapData map, UnitData target = null)
|
||||
{
|
||||
var value = 0f;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
value += skill.GetAttackAdditionParam(map, this, target);
|
||||
}
|
||||
foreach (var skill in Skills) value += skill.GetAttackAdditionParam(map, this, target);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -679,11 +659,7 @@ namespace RuntimeData
|
||||
public float GetAttackMultiplicationParam(MapData map, UnitData target = null)
|
||||
{
|
||||
var value = 1f;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
value *= skill.GetAttackMultiplicationParam(map, this, target);
|
||||
}
|
||||
foreach (var skill in Skills) value *= skill.GetAttackMultiplicationParam(map, this, target);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -708,7 +684,6 @@ namespace RuntimeData
|
||||
var add = 0;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
add += skill.GetExtraMoveRange(mapData,this);
|
||||
}
|
||||
//var mul = GetDefenseMultiplicationParam(map);
|
||||
@ -734,7 +709,6 @@ namespace RuntimeData
|
||||
var add = 0;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
add += skill.GetExtraAttackRange(mapData,this);
|
||||
}
|
||||
//var mul = GetDefenseMultiplicationParam(map);
|
||||
@ -766,11 +740,7 @@ namespace RuntimeData
|
||||
public float GetDefenseAdditionParam(MapData map, UnitData target = null)
|
||||
{
|
||||
var value = 0f;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
value += skill.GetDefenseAdditionParam(map, this, target);
|
||||
}
|
||||
foreach (var skill in Skills) value += skill.GetDefenseAdditionParam(map, this, target);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -781,7 +751,6 @@ namespace RuntimeData
|
||||
var isZero = 1f;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
var t = skill.GetDefenseMultiplicationParam(map, this, target);
|
||||
value = Mathf.Max(t,value);
|
||||
isZero *= t;
|
||||
@ -815,11 +784,7 @@ namespace RuntimeData
|
||||
public float GetCriticalHitRate(MapData map)
|
||||
{
|
||||
var criticalHitRate = 0f;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
criticalHitRate += skill.GetCriticalHitRate(this, map);
|
||||
}
|
||||
foreach (var skill in Skills) criticalHitRate += skill.GetCriticalHitRate(this, map);
|
||||
return criticalHitRate;
|
||||
}
|
||||
|
||||
@ -831,10 +796,7 @@ namespace RuntimeData
|
||||
{
|
||||
int ret = 0;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
ret += skill.GetOfficerHealth();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -842,20 +804,14 @@ namespace RuntimeData
|
||||
public bool IsOfficer()
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsOfficer()) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool IsPrepareOfficer()
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsPrepareOfficer()) return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
@ -863,10 +819,7 @@ namespace RuntimeData
|
||||
public bool IsCanBeOfficer()
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsCanBeOfficer()) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -875,7 +828,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsCanMoveGiantNearbyGrid(this, map)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -900,18 +852,15 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsCanMoveToNoUnitSelfCity(this, map)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 是否可以死亡
|
||||
public bool CanBeKilled(MapData map)
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (!skill.IsCanBeKill(this, map)) return false;
|
||||
}
|
||||
return true;
|
||||
@ -922,7 +871,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsCanBeDamaged(this, map, dmg)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -933,7 +881,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsLimitSelfExp(this, map)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -950,7 +897,6 @@ namespace RuntimeData
|
||||
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsCanMoveOnTerrain(this, map, terrainType)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -963,7 +909,6 @@ namespace RuntimeData
|
||||
return true;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsCanMoveOnFeature(this, map,featureType)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -974,7 +919,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.CanAttackAll(this, map)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -985,7 +929,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsLimitSelfAttack(this, map)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -996,7 +939,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsCanAttackTargetGrid(map,this,target)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -1007,7 +949,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsCanAttackAlly()) return true;
|
||||
}
|
||||
return false;
|
||||
@ -1018,7 +959,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (!skill.IsCanAttackTargetAlly(map,this,target)) return false;
|
||||
}
|
||||
return true;
|
||||
@ -1029,7 +969,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsLimitSelfCounterAttack(this, map)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -1040,7 +979,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsLimitTargetCounterAttack(this, map)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -1050,7 +988,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsCanTransport()) return true;
|
||||
}
|
||||
return false;
|
||||
@ -1060,11 +997,7 @@ namespace RuntimeData
|
||||
public void OnMove(MapData map, GridData target, MoveType moveType, List<Vector2Int> path = null)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.OnMove(this, target, map,moveType, path);
|
||||
}
|
||||
foreach (var skill in copy) skill.OnMove(this, target, map,moveType, path);
|
||||
//赋予格子特殊效果
|
||||
if(target.HasSpType(GridSpType.RemiliaGrid) && target.Unit(map,out var unit) && unit.Player(map,out var player) && player.PlayerCivId == 0)
|
||||
AddSkill_Legacy(SkillType.ScarletMistRealTimeVampire, map,true,-1,false,-1,false,SpecialAddSkillType.Force,0);
|
||||
@ -1077,22 +1010,14 @@ namespace RuntimeData
|
||||
public void BeforeDamagedSupportStage(MapData map, SettlementInfo info)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.BeforeDamagedSupportStage(map, info);
|
||||
}
|
||||
foreach (var skill in copy) skill.BeforeDamagedSupportStage(map, info);
|
||||
}
|
||||
|
||||
// 伤害结算前
|
||||
public void BeforeDamagedTransformStage(MapData map, SettlementInfo info)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.BeforeDamagedTransformStage(map, info);
|
||||
}
|
||||
foreach (var skill in copy) skill.BeforeDamagedTransformStage(map, info);
|
||||
}
|
||||
|
||||
// 对他人攻击前
|
||||
@ -1102,7 +1027,6 @@ namespace RuntimeData
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.BeforeActiveAttackOther(mapData, origin, target, out var tmpAddDmg);
|
||||
addDmg += tmpAddDmg;
|
||||
}
|
||||
@ -1112,77 +1036,49 @@ namespace RuntimeData
|
||||
public void AfterActiveAttackOther(MapData mapData, UnitData origin, UnitData target)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.AfterActiveAttackOther(mapData, origin, target);
|
||||
}
|
||||
foreach (var skill in copy) skill.AfterActiveAttackOther(mapData, origin, target);
|
||||
}
|
||||
|
||||
// 受他人攻击后
|
||||
public void AfterActiveAttacked(MapData mapData, UnitData origin, UnitData target)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.AfterActiveAttacked(mapData, origin, target);
|
||||
}
|
||||
foreach (var skill in copy) skill.AfterActiveAttacked(mapData, origin, target);
|
||||
}
|
||||
|
||||
// 对他人伤害结算前
|
||||
public void BeforeDamageOther(MapData map, SettlementInfo info)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.BeforeDamageOther(map, info);
|
||||
}
|
||||
foreach (var skill in copy) skill.BeforeDamageOther(map, info);
|
||||
}
|
||||
|
||||
// 伤害结算时
|
||||
public void OnDamaged(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.OnDamaged(mapData, info);
|
||||
}
|
||||
foreach (var skill in copy) skill.OnDamaged(mapData, info);
|
||||
}
|
||||
|
||||
// 对他人伤害结算时
|
||||
public void OnDamageOther(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.OnDamageOther(mapData, info);
|
||||
}
|
||||
foreach (var skill in copy) skill.OnDamageOther(mapData, info);
|
||||
}
|
||||
|
||||
// 对他人伤害结算后
|
||||
public void AfterDamageOther(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.AfterDamageOther(mapData, info);
|
||||
}
|
||||
foreach (var skill in copy) skill.AfterDamageOther(mapData, info);
|
||||
}
|
||||
|
||||
// 对他人治疗结算时
|
||||
public void OnHealOther(MapData mapData, UnitData target,HealType healType)
|
||||
{
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.OnHealOther(mapData,this,target, healType);
|
||||
}
|
||||
foreach (var skill in copy) skill.OnHealOther(mapData,this,target, healType);
|
||||
//HeroTask(mapData)?.OnDamageOther(mapData, info);
|
||||
//for (int i = Skills.Count - 1; i >= 0; i--) Skills[i].OnHealOther(mapData, info);
|
||||
//HeroTask(mapData)?.OnDamageOther(mapData, info);
|
||||
@ -1195,10 +1091,7 @@ namespace RuntimeData
|
||||
var copy = new List<SkillBase>(Skills);
|
||||
float ret = 0f;
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
ret = Mathf.Max(ret,skill.GetGridMoveFloor(mapData,originUnit,targetGrid));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1213,11 +1106,8 @@ namespace RuntimeData
|
||||
public int GetKillCount()
|
||||
{
|
||||
int ret = 0;
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
foreach(var skill in Skills)
|
||||
ret += skill.GetKillCount();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1235,7 +1125,6 @@ namespace RuntimeData
|
||||
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsTreatAsHero(map, this,unit)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -1246,7 +1135,6 @@ namespace RuntimeData
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
if (skill.IsLimitMoveToSelfTerrain(this, map)) return true;
|
||||
}
|
||||
return false;
|
||||
@ -1273,11 +1161,8 @@ namespace RuntimeData
|
||||
{
|
||||
SetFullAPCPMP();
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.OnRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
public int AddHealth(int hp)
|
||||
{
|
||||
@ -1289,21 +1174,8 @@ namespace RuntimeData
|
||||
public void SetOfficer()
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (IsFrozen()) continue;
|
||||
skill.SetOfficer();
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsFrozen()
|
||||
{
|
||||
foreach (var skill in Skills)
|
||||
{
|
||||
if (skill.IsAllSkillBan()) return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -82,7 +82,6 @@ namespace Logic.Achievement
|
||||
public abstract bool CheckCondition(AchievementItem item, MapData map);
|
||||
public abstract void GetProgress(out int current, out int target);
|
||||
public abstract bool CheckChanged(AchievementConditionBase condition);
|
||||
public abstract void CopyChange(AchievementConditionBase condition);
|
||||
|
||||
// 用于记录回退,所以期望一定是返回 false 从而回退成就,所以默认返回true
|
||||
public virtual bool ReCheckCondition()
|
||||
@ -175,15 +174,6 @@ namespace Logic.Achievement
|
||||
target = TargetCount;
|
||||
}
|
||||
|
||||
public override void CopyChange(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as TrainGiantCondition;
|
||||
if (cond == null) return;
|
||||
if (TargetGiant != cond.TargetGiant) return;
|
||||
|
||||
TrainCount += cond.TrainCount;
|
||||
}
|
||||
|
||||
public override bool ReCheckCondition()
|
||||
{
|
||||
return TrainCount >= TargetCount;
|
||||
@ -254,15 +244,6 @@ namespace Logic.Achievement
|
||||
target = TargetCount;
|
||||
}
|
||||
|
||||
public override void CopyChange(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as BuildWonderConditionCondition;
|
||||
if (cond == null) return;
|
||||
if (Wonder != cond.Wonder) return;
|
||||
|
||||
BuildCount += cond.BuildCount;
|
||||
}
|
||||
|
||||
public override bool CheckChanged(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as BuildWonderConditionCondition;
|
||||
@ -320,13 +301,6 @@ namespace Logic.Achievement
|
||||
target = 1;
|
||||
}
|
||||
|
||||
public override void CopyChange(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as WonderInCityConditionCondition;
|
||||
if (cond == null) return;
|
||||
if (Wonder != cond.Wonder) return;
|
||||
}
|
||||
|
||||
public override bool CheckChanged(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as WonderInCityConditionCondition;
|
||||
@ -411,13 +385,6 @@ namespace Logic.Achievement
|
||||
target = TargetTurns;
|
||||
}
|
||||
|
||||
public override void CopyChange(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as UnitOnWonderConditionCondition;
|
||||
if (cond == null) return;
|
||||
if (Wonder != cond.Wonder) return;
|
||||
}
|
||||
|
||||
public override bool CheckChanged(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as UnitOnWonderConditionCondition;
|
||||
@ -500,12 +467,6 @@ namespace Logic.Achievement
|
||||
target = TargetCount;
|
||||
}
|
||||
|
||||
public override void CopyChange(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundBuildingsConditionCondition;
|
||||
if (cond == null) return;
|
||||
}
|
||||
|
||||
public override bool CheckChanged(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundBuildingsConditionCondition;
|
||||
@ -583,12 +544,6 @@ namespace Logic.Achievement
|
||||
target = TargetCount;
|
||||
}
|
||||
|
||||
public override void CopyChange(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundWondersConditionCondition;
|
||||
if (cond == null) return;
|
||||
}
|
||||
|
||||
public override bool CheckChanged(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundWondersConditionCondition;
|
||||
@ -667,12 +622,6 @@ namespace Logic.Achievement
|
||||
target = TargetCount;
|
||||
}
|
||||
|
||||
public override void CopyChange(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundEnemyUnitsConditionCondition;
|
||||
if (cond == null) return;
|
||||
}
|
||||
|
||||
public override bool CheckChanged(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundEnemyUnitsConditionCondition;
|
||||
@ -750,12 +699,6 @@ namespace Logic.Achievement
|
||||
target = TargetCount;
|
||||
}
|
||||
|
||||
public override void CopyChange(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundSelfUnitsConditionCondition;
|
||||
if (cond == null) return;
|
||||
}
|
||||
|
||||
public override bool CheckChanged(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundSelfUnitsConditionCondition;
|
||||
@ -831,12 +774,6 @@ namespace Logic.Achievement
|
||||
target = TargetCount;
|
||||
}
|
||||
|
||||
public override void CopyChange(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundSelfUnitsConditionCondition;
|
||||
if (cond == null) return;
|
||||
}
|
||||
|
||||
public override bool CheckChanged(AchievementConditionBase condition)
|
||||
{
|
||||
var cond = condition as AroundCityGridsConditionCondition;
|
||||
|
||||
@ -11,7 +11,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Logic.Achievement;
|
||||
using Logic.CrashSight;
|
||||
using TH1_Logic.Config;
|
||||
using TH1_Logic.Tools;
|
||||
using UnityEngine;
|
||||
|
||||
@ -41,43 +40,11 @@ namespace RuntimeData
|
||||
public void LoadAchievement()
|
||||
{
|
||||
var asset = Resources.Load<AchievementAsset>("Export/Achievement");
|
||||
string path = Application.persistentDataPath + "/../Config/achievement.json";
|
||||
string path = Application.persistentDataPath + "/achievement.json";
|
||||
string backupPath = path + ".bak";
|
||||
|
||||
// 临时代码,如果找不到新路径下的成就存档,就从旧的存档里进行恢复操作,默认读最近五个档
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
Achievement = asset.Data;
|
||||
Achievement.ClearAchievementFinishedInfo();
|
||||
|
||||
var achievements = new List<AchievementData>();
|
||||
foreach (var version in ConfigManager.Instance.VersionCfg.Versions)
|
||||
{
|
||||
var oldPath = Application.persistentDataPath + $"/../TOHOTOPIA Demo v{version.Version}/achievement.json";
|
||||
achievements.Add(TryReadAchievementData(oldPath));
|
||||
oldPath = Application.persistentDataPath + $"/../TOHOTOPIA Demo v{version.WindowsVersion}/achievement.json";
|
||||
achievements.Add(TryReadAchievementData(oldPath));
|
||||
oldPath = Application.persistentDataPath + $"/../TOHOTOPIA Demo v{version.OldFullVersion}/achievement.json";
|
||||
achievements.Add(TryReadAchievementData(oldPath));
|
||||
oldPath = Application.persistentDataPath + $"/../TOHOTOPIA Demo v{version.OldWindowsFullVersion}/achievement.json";
|
||||
achievements.Add(TryReadAchievementData(oldPath));
|
||||
}
|
||||
|
||||
foreach (var item in Achievement.AchievementList)
|
||||
{
|
||||
foreach (var old in achievements)
|
||||
{
|
||||
if (old == null) continue;
|
||||
var target = old.GetAchievementItem(item.BigID, item.SmallID, item.InternalID);
|
||||
item.CopyChange(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 尝试读取主文件
|
||||
Achievement = TryReadAchievementData(path);
|
||||
}
|
||||
|
||||
// 主文件损坏,尝试从备份恢复
|
||||
if (Achievement == null && File.Exists(backupPath))
|
||||
@ -176,7 +143,7 @@ namespace RuntimeData
|
||||
if (Achievement == null) return;
|
||||
string json = JsonUtility.ToJson(Achievement);
|
||||
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);
|
||||
FileTools.SafeWriteFile(Application.persistentDataPath + "/../Config/achievement.json", bytes);
|
||||
FileTools.SafeWriteFile(Application.persistentDataPath + "/achievement.json", bytes);
|
||||
}
|
||||
|
||||
public void BindMapData(MapData mapData)
|
||||
|
||||
@ -164,17 +164,6 @@ namespace Logic.Achievement
|
||||
return false;
|
||||
}
|
||||
|
||||
public void CopyChange(AchievementItem target)
|
||||
{
|
||||
if (target == null) return;
|
||||
if (target.Conditions.Count != Conditions.Count) return;
|
||||
for (int i = 0; i < Conditions.Count; i++)
|
||||
{
|
||||
Conditions[i].CopyChange(target.Conditions[i]);
|
||||
}
|
||||
if (target.IsFinished) IsFinished = true;
|
||||
}
|
||||
|
||||
//-------------- 序列化相关 -------------------//
|
||||
// 辅助序列化字段
|
||||
[SerializeField]
|
||||
|
||||
@ -42,7 +42,7 @@ namespace TH1_Logic.Config
|
||||
{
|
||||
if (Config == null)
|
||||
{
|
||||
string path = Application.persistentDataPath + "/../Config/game_cfg.json";
|
||||
string path = Application.persistentDataPath + "/game_cfg.json";
|
||||
string backupPath = path + ".bak";
|
||||
|
||||
// 尝试读取主文件
|
||||
@ -167,7 +167,7 @@ namespace TH1_Logic.Config
|
||||
{
|
||||
string json = JsonUtility.ToJson(Config);
|
||||
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);
|
||||
string path = Application.persistentDataPath + "/../Config/game_cfg.json";
|
||||
string path = Application.persistentDataPath + "/game_cfg.json";
|
||||
FileTools.SafeWriteFile(path, bytes);
|
||||
|
||||
Config.MarkSaved();
|
||||
|
||||
@ -20,15 +20,19 @@ namespace Logic.Config
|
||||
public List<VersionInfo> Versions = new List<VersionInfo>();
|
||||
public VersionInfo CurVersionInfo => GetVersionInfo(CurVersionId);
|
||||
|
||||
public uint CurVersionMajorId => CurVersionId / 10000;
|
||||
public uint CurVersionMinorId => CurVersionId % 10000 / 100;
|
||||
public uint CurVersionPatchId => CurVersionId % 100;
|
||||
|
||||
public void CreateNewVersion(uint major, uint minor, uint patch, uint fourth)
|
||||
|
||||
|
||||
public void CreateNewVersion(uint major, uint minor, uint patch)
|
||||
{
|
||||
var newVersion = new VersionInfo
|
||||
{
|
||||
MajorVersion = major,
|
||||
MinorVersion = minor,
|
||||
PatchVersion = patch,
|
||||
FourthVersion = fourth,
|
||||
PatchVersion = patch
|
||||
};
|
||||
Versions.Add(newVersion);
|
||||
}
|
||||
@ -40,7 +44,7 @@ namespace Logic.Config
|
||||
{
|
||||
if (version.VersionId == versionId) return version;
|
||||
}
|
||||
return Versions[0];
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@ -54,24 +58,8 @@ namespace Logic.Config
|
||||
public uint PatchVersion; // 补丁号
|
||||
[MultilingualField]
|
||||
public string Description; // 版本描述
|
||||
public uint FourthVersion; // 第四版本号,预留字段
|
||||
|
||||
|
||||
// 版本ID,格式为 Major.Minor.Patch.Fourth
|
||||
public uint VersionId => MajorVersion * 1000000 + MinorVersion * 10000 + PatchVersion * 100 + FourthVersion;
|
||||
public string FullVersion => $"{MajorVersion}.{MinorVersion}.{PatchVersion}{GetFourthVersionLetter()}";
|
||||
public string WindowsFullVersion => $"{MajorVersion}_{MinorVersion}_{PatchVersion}{GetFourthVersionLetter()}";
|
||||
public string Version => $"{MajorVersion}.{MinorVersion}.{PatchVersion}";
|
||||
public string WindowsVersion => $"{MajorVersion}_{MinorVersion}_{PatchVersion}";
|
||||
public string OldFullVersion => $"1.{MinorVersion}.{PatchVersion}";
|
||||
public string OldWindowsFullVersion => $"1_{MinorVersion}_{PatchVersion}";
|
||||
|
||||
|
||||
// 将 FourthVersion 转成小写英文字母, 0 对应 a
|
||||
public string GetFourthVersionLetter()
|
||||
{
|
||||
return ((char)('a' + FourthVersion)).ToString();
|
||||
}
|
||||
|
||||
public uint VersionId => MajorVersion * 10000 + MinorVersion * 100 + PatchVersion; // 版本ID,格式为 Major.Minor.Patch
|
||||
public string FullVersion => $"{MajorVersion}.{MinorVersion}.{PatchVersion}";
|
||||
}
|
||||
}
|
||||
@ -113,7 +113,7 @@ namespace Logic.Editor
|
||||
}*/
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth("清空成就完成情况"))
|
||||
{
|
||||
string path = Application.persistentDataPath + "/../Config/achievement.json";
|
||||
string path = Application.persistentDataPath + "/achievement.json";
|
||||
if (File.Exists(path))File.Delete(path);
|
||||
}
|
||||
if (_bigID != 0 && _smallID != 0)
|
||||
|
||||
@ -29,7 +29,6 @@ namespace Logic.Editor
|
||||
private uint _major;
|
||||
private uint _minor;
|
||||
private uint _patch;
|
||||
private uint _fourth;
|
||||
private int _index;
|
||||
// 背景
|
||||
private GUIStyle _redBoxStyle;
|
||||
@ -97,20 +96,20 @@ namespace Logic.Editor
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
InspectorUtils.InspectorTextWidthRich($"<b>版本号: </b>");
|
||||
_major = (uint)EditorGUILayout.IntField((int)_major, GUILayout.Width(20));
|
||||
//_major = (uint)Mathf.Max(0, _major);
|
||||
_minor = (uint)EditorGUILayout.IntField((int)_minor, GUILayout.Width(20));
|
||||
_patch = (uint)EditorGUILayout.IntField((int)_patch, GUILayout.Width(20));
|
||||
_fourth = (uint)EditorGUILayout.IntField((int)_fourth, GUILayout.Width(20));
|
||||
var versionId = _major * 1000000 + _minor * 10000 + _patch * 100 + _fourth;
|
||||
var desc = $"{_major}.{_minor}.{_patch}.{_fourth}";
|
||||
var versionId = _major * 10000 + _minor * 100 + _patch;
|
||||
var desc = $"{_major}.{_minor}.{_patch}";
|
||||
if (_asset.GetVersionInfo(versionId) != null)
|
||||
{
|
||||
InspectorUtils.InspectorTextWidthRich($"<b>已存在版本号{_major}.{_minor}.{_patch}.{_fourth}</b>");
|
||||
InspectorUtils.InspectorTextWidthRich($"<b>已存在版本号{_major}.{_minor}.{_patch}</b>");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"创建版本号{desc}"))
|
||||
{
|
||||
_asset.CreateNewVersion(_major, _minor, _patch, _fourth);
|
||||
_asset.CreateNewVersion(_major, _minor, _patch);
|
||||
_asset.Versions = _asset.Versions.OrderByDescending(v => v.VersionId).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
@ -244,8 +244,7 @@ namespace Logic.Editor
|
||||
foreach (var filePath in datFiles)
|
||||
{
|
||||
string fileName = Path.GetFileName(filePath);
|
||||
try
|
||||
{
|
||||
|
||||
byte[] data = File.ReadAllBytes(filePath);
|
||||
Debug.Log($"读取文件: {fileName}, 大小: {data.Length} bytes");
|
||||
|
||||
@ -262,12 +261,6 @@ namespace Logic.Editor
|
||||
failCount++;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogError($"<color=red>[异常] {fileName} 反序列化失败: {ex.Message}</color>");
|
||||
failCount++;
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log($"=== 反序列化完成: 成功 {successCount} / 失败 {failCount} / 共 {datFiles.Length} 个文件 ===");
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ namespace Logic.Editor
|
||||
{
|
||||
_mapPairs.Clear();
|
||||
|
||||
string directory = Application.persistentDataPath + "/../Config/";
|
||||
string directory = Application.persistentDataPath;
|
||||
if (!Directory.Exists(directory))
|
||||
{
|
||||
Debug.LogWarning($"存档目录不存在: {directory}");
|
||||
|
||||
@ -12,7 +12,6 @@ using System.IO;
|
||||
using Logic.AI;
|
||||
using Logic.CrashSight;
|
||||
using MemoryPack;
|
||||
using TH1_Logic.Config;
|
||||
using TH1_Logic.Tools;
|
||||
using UnityEngine;
|
||||
|
||||
@ -111,47 +110,18 @@ namespace RuntimeData
|
||||
RefreshGameRecord();
|
||||
_gameRecord.Records.Add(record);
|
||||
byte[] bytes = MemoryPackSerializer.Serialize(_gameRecord);
|
||||
FileTools.SafeWriteFile(Application.persistentDataPath + "/../Config/game_record.dat", bytes);
|
||||
FileTools.SafeWriteFile(Application.persistentDataPath + "/game_record.dat", bytes);
|
||||
}
|
||||
|
||||
public void RefreshGameRecord()
|
||||
{
|
||||
if (_gameRecord != null) return;
|
||||
|
||||
string path = Application.persistentDataPath + "/../Config/game_record.dat";
|
||||
string path = Application.persistentDataPath + "/game_record.dat";
|
||||
string backupPath = path + ".bak";
|
||||
|
||||
// 临时代码,如果找不到新路径下的成就存档,就从旧的存档里进行恢复操作,默认读最近五个档
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
_gameRecord = new GameRecordData();
|
||||
var records = new List<GameRecordData>();
|
||||
foreach (var version in ConfigManager.Instance.VersionCfg.Versions)
|
||||
{
|
||||
var oldPath = Application.persistentDataPath + $"/../TOHOTOPIA Demo v{version.Version}/game_record.dat";
|
||||
records.Add(FileTools.TryDeserializeFile<GameRecordData>(oldPath));
|
||||
oldPath = Application.persistentDataPath + $"/../TOHOTOPIA Demo v{version.WindowsVersion}/game_record.dat";
|
||||
records.Add(FileTools.TryDeserializeFile<GameRecordData>(oldPath));
|
||||
oldPath = Application.persistentDataPath + $"/../TOHOTOPIA Demo v{version.OldFullVersion}/game_record.dat";
|
||||
records.Add(FileTools.TryDeserializeFile<GameRecordData>(oldPath));
|
||||
oldPath = Application.persistentDataPath + $"/../TOHOTOPIA Demo v{version.OldWindowsFullVersion}/game_record.dat";
|
||||
records.Add(FileTools.TryDeserializeFile<GameRecordData>(oldPath));
|
||||
}
|
||||
|
||||
foreach (var record in records)
|
||||
{
|
||||
if (record == null) continue;
|
||||
foreach (var item in record.Records)
|
||||
{
|
||||
_gameRecord.Records.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 尝试读取主文件
|
||||
_gameRecord = FileTools.TryDeserializeFile<GameRecordData>(path);
|
||||
}
|
||||
|
||||
// 主文件损坏,尝试从备份恢复
|
||||
if (_gameRecord == null && File.Exists(backupPath))
|
||||
|
||||
@ -70,7 +70,7 @@ namespace Logic
|
||||
{
|
||||
if (_config != null) return;
|
||||
|
||||
string path = Application.persistentDataPath + "/../Config/input_config.dat";
|
||||
string path = Application.persistentDataPath + "/input_config.dat";
|
||||
string backupPath = path + ".bak";
|
||||
|
||||
// 尝试读取主文件
|
||||
@ -109,7 +109,7 @@ namespace Logic
|
||||
{
|
||||
if (_config == null) return;
|
||||
byte[] bytes = MemoryPackSerializer.Serialize(_config);
|
||||
FileTools.SafeWriteFile(Application.persistentDataPath + "/../Config/input_config.dat", bytes);
|
||||
FileTools.SafeWriteFile(Application.persistentDataPath + "/input_config.dat", bytes);
|
||||
}
|
||||
|
||||
// 每帧调用,返回绑定结果(null表示还在监听中)
|
||||
|
||||
@ -37,7 +37,6 @@ namespace TH1_Logic.Oss
|
||||
{
|
||||
steamId = steamId,
|
||||
authTicket = authTicket,
|
||||
version = ConfigManager.Instance.VersionCfg.CurVersionInfo.Version,
|
||||
});
|
||||
var bodyBytes = Encoding.UTF8.GetBytes(requestBody);
|
||||
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 26eec140673c4347a8122fa599692cc0
|
||||
timeCreated: 1773043793
|
||||
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 骨堆攻击技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class BonePileAttackSkill : SkillBase
|
||||
{
|
||||
public BonePileAttackSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.BONEPILEATTACK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f6ec1803b84b4c938da710c9b7eb5756
|
||||
timeCreated: 1772778294
|
||||
@ -25,10 +25,8 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.BonePile;
|
||||
return SkillType.BONEPILE;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: edad0dcfc6d1493cb95a0dc4bdbecbc7
|
||||
timeCreated: 1773043710
|
||||
@ -25,12 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.CanHide;
|
||||
}
|
||||
|
||||
public override void OnMove(UnitData self, GridData grid, MapData mapData, MoveType moveType, List<Vector2Int> path = null)
|
||||
{
|
||||
self.AddOrOverrideSkill(SkillType.CanHide, mapData, self.Id);
|
||||
return SkillType.CANHIDE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,28 +21,11 @@ namespace Logic.Skill
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
IsLevelSkill = true;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.CorpseBuff;
|
||||
}
|
||||
|
||||
public override int GetExtraMoveRange(MapData mapData, UnitData self)
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public override void OnDamaged(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
if (info.DamageTarget == null) return;
|
||||
if (info.DamageType == DamageType.ActiveAttack || info.DamageType == DamageType.CounterAttack ||
|
||||
info.DamageType == DamageType.Splash)
|
||||
{
|
||||
if (_level >= 2) info.DamageValue = 0;
|
||||
ReduceLevel(mapData, info.DamageTarget, 1);
|
||||
}
|
||||
return SkillType.CORPSEBUFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,18 +1,22 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 燐火焰技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Description: 尸体燃烧技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class RinFireSkill : SkillBase
|
||||
public partial class CorpseBurnSkill : SkillBase
|
||||
{
|
||||
public RinFireSkill()
|
||||
public CorpseBurnSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
@ -21,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.RinFire;
|
||||
return SkillType.CORPSEBURN;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1057017c9de840f798ceda726bcd2f22
|
||||
timeCreated: 1772778289
|
||||
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 尸体收集技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class CorpseCollectSkill : SkillBase
|
||||
{
|
||||
public CorpseCollectSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.CORPSECOLLECT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3f0830937e64478e8214d15b0e57338b
|
||||
timeCreated: 1772778279
|
||||
@ -1,18 +1,22 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 格子辐射技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Description: 尸体效果技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class GridRadiationSkill : SkillBase
|
||||
public partial class CorpseEffectSkill : SkillBase
|
||||
{
|
||||
public GridRadiationSkill()
|
||||
public CorpseEffectSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
@ -21,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.GridRadiation;
|
||||
return SkillType.CORPSEEFFECT;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 104b286d300d4c839615dc1946bf4864
|
||||
timeCreated: 1772778283
|
||||
@ -1,18 +1,22 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 骨堆献祭技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Description: 尸体火焰技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class BoneSacrificeSkill : SkillBase
|
||||
public partial class CorpseFireSkill : SkillBase
|
||||
{
|
||||
public BoneSacrificeSkill()
|
||||
public CorpseFireSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
@ -21,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.BoneSacrifice;
|
||||
return SkillType.CORPSEFIRE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa6c9dc589a244aa9be3f2b1b52db166
|
||||
timeCreated: 1772778328
|
||||
@ -1,36 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 恐惧制造者技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class FearMakerSkill : SkillBase
|
||||
{
|
||||
public FearMakerSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.FearMaker;
|
||||
}
|
||||
|
||||
public override void OnDamageOther(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
if (info.DamageTarget == null || info.DamageOrigin == null) return;
|
||||
if (info.DamageType != DamageType.ActiveAttack && info.DamageType != DamageType.CounterAttack) return;
|
||||
|
||||
info.DamageTarget.AddOrOverrideSkill(SkillType.KomeijiFear, mapData, info.DamageOrigin.Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 74ee72e3a37b4be0867b71435856d9cd
|
||||
timeCreated: 1773043718
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5dc0734b45d40489601af748c87e97f
|
||||
timeCreated: 1773043763
|
||||
@ -25,12 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.HideState;
|
||||
}
|
||||
|
||||
public override void AfterActiveAttacked(MapData mapData, UnitData origin, UnitData target)
|
||||
{
|
||||
origin.RemoveSkill(SkillType.HideState, mapData);
|
||||
return SkillType.HIDESTATE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 恋自动移动技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Logic.Action;
|
||||
using Logic.AI;
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class KoishiAutoMoveSkill : SkillBase
|
||||
{
|
||||
public KoishiAutoMoveSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.KoishiAutoMove;
|
||||
}
|
||||
|
||||
public override void OnTurnEnd(IdentifierBase self, MapData mapData)
|
||||
{
|
||||
var unit = self as UnitData;
|
||||
mapData.GetPlayerDataByUnitId(self.Id, out var player);
|
||||
if (unit == null || player == null) return;
|
||||
|
||||
var data = new AICalculatorData();
|
||||
data.Map = mapData;
|
||||
data.Player = player;
|
||||
data.TargetParam.MapData = mapData;
|
||||
data.TargetParam.PlayerData = player;
|
||||
data.TargetParam.UnitData = unit;
|
||||
data.TargetParam.OnParamChanged();
|
||||
AIActionGenerator.GeneratorActionIds(data, CommonActionType.UnitMove);
|
||||
if (data.AIActions.Count == 0) return;
|
||||
|
||||
data.TargetParam.RefreshParams();
|
||||
var index = mapData.Net.GetRandom(mapData).Next(0, data.AIActions.Count - 1); // 生成 index
|
||||
data.AIActions[index].ActionLogic.CompleteExecute(data.AIActions[index].Param);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dee0a882ca5c4c4983156a3f39fbe598
|
||||
timeCreated: 1773043703
|
||||
@ -25,17 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.KoishiAuto;
|
||||
}
|
||||
|
||||
public override void OnMove(UnitData self, GridData grid, MapData mapData, MoveType moveType, List<Vector2Int> path = null)
|
||||
{
|
||||
base.OnMove(self, grid, mapData, moveType, path);
|
||||
}
|
||||
|
||||
private void AfterAction()
|
||||
{
|
||||
|
||||
return SkillType.KOISHIAUTO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 恋骨堆治愈技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class KoishiBoneHealSkill : SkillBase
|
||||
{
|
||||
public KoishiBoneHealSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.KOISHIBONEHEAL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7ec5bcc5f01348f4a4ed2e13ac8d96da
|
||||
timeCreated: 1772778266
|
||||
@ -25,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.KoishiDeathFear;
|
||||
return SkillType.KOISHIDEATHFEAR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,18 +1,22 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 骨堆攻击增强技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Description: 恋自由技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class BoneAttackUpSkill : SkillBase
|
||||
public partial class KoishiFreeSkill : SkillBase
|
||||
{
|
||||
public BoneAttackUpSkill()
|
||||
public KoishiFreeSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
@ -21,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.BoneAttackUp;
|
||||
return SkillType.KOISHIFREE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 810580e3ac0f4cc29741b59a18ff9ac4
|
||||
timeCreated: 1772778275
|
||||
@ -25,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.KoishiRespawn;
|
||||
return SkillType.KOISHIRESPAWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,40 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 恋不死技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
using TH1_Logic.Core;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class KoishiUndeadSkill : SkillBase
|
||||
{
|
||||
public KoishiUndeadSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.KoishiUndead;
|
||||
}
|
||||
|
||||
public override bool IsCanBeKill(UnitData self, MapData mapData)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void OnDamaged(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
if (info.DamageTarget == null || info.DamageTarget.Health > 0) return;
|
||||
Main.UnitLogic.UnitUnnaturalDie(mapData, info.DamageTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a5d31aa0b9a84a41badb88930ad101b4
|
||||
timeCreated: 1773043725
|
||||
@ -27,7 +27,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.KomeijiFear;
|
||||
return SkillType.KOMEIJIFEAR;
|
||||
}
|
||||
|
||||
public override float GetDefenseMultiplicationParam(MapData mapData, UnitData self, UnitData target = null)
|
||||
@ -63,7 +63,7 @@ namespace Logic.Skill
|
||||
if (map.IsLeagueUnitByUnit(self.Id, target.Id)) continue;
|
||||
|
||||
Main.UnitLogic.DamageSettlement(map, self, target, 2, DamageType.Splash);
|
||||
target.AddOrOverrideSkill(SkillType.KomeijiFear, map, self.Id);
|
||||
target.AddOrOverrideSkill(SkillType.KOMEIJIFEAR, map, self.Id);
|
||||
}
|
||||
}
|
||||
else if (_level == 1)
|
||||
|
||||
@ -50,7 +50,7 @@ namespace Logic.Skill
|
||||
RefreshAroundGiant(map, self);
|
||||
}
|
||||
|
||||
public override void OnAnyUnitDie(MapData map, UnitData self, UnitData dieUnit)
|
||||
public override void OnAnyUnitDie(MapData map, UnitData self)
|
||||
{
|
||||
RefreshAroundGiant(map, self);
|
||||
}
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 燐尸体收集技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class RinCorpseColletSkill : SkillBase
|
||||
{
|
||||
public RinCorpseColletSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.RinCorpseCollet;
|
||||
}
|
||||
|
||||
public override void OnAnyUnitDie(MapData map, UnitData self, UnitData dieUnit)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 35c966679cdc4a90ad6add26bba6ccf1
|
||||
timeCreated: 1773043735
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 82ba0d7d7a32486db4aa11db62372165
|
||||
timeCreated: 1773043743
|
||||
@ -25,14 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.SatoriBan;
|
||||
}
|
||||
|
||||
public override void OnDamageOther(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
if (info.DamageType != DamageType.ActiveAttack || info.DamageOrigin == null || info.DamageTarget == null) return;
|
||||
|
||||
info.DamageOrigin.AddOrOverrideSkill(SkillType.SkillBan, mapData, info.DamageOrigin.Id);
|
||||
return SkillType.SATORIBAN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.SatoriSee;
|
||||
return SkillType.SATORISEE;
|
||||
}
|
||||
|
||||
public override void BeforeUnitDamaged(UnitData self, MapData mapData, SettlementInfo info)
|
||||
@ -44,7 +44,7 @@ namespace Logic.Skill
|
||||
|
||||
var dis = mapData.GridMap.CalcDistance(selfGrid, targetGrid);
|
||||
if (dis > 2) return;
|
||||
info.DamageOrigin.AddOrOverrideSkill(SkillType.KomeijiFear, mapData, self.Id);
|
||||
info.DamageOrigin.AddOrOverrideSkill(SkillType.KOMEIJIFEAR, mapData, self.Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,10 +5,12 @@
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
|
||||
using RuntimeData;
|
||||
using Logic.CrashSight;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
@ -23,27 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.SkillBanBoom;
|
||||
}
|
||||
|
||||
public override void OnDamaged(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
if (!info.IsKill || info.DamageTarget == null) return;
|
||||
var grid = info.DamageTarget.Grid(mapData);
|
||||
if (grid == null)
|
||||
{
|
||||
LogSystem.LogError($"Explode Error grid is null");
|
||||
return;
|
||||
}
|
||||
|
||||
var arounds = mapData.GridMap.GetAroundGridData(1, 1, grid);
|
||||
foreach (var around in arounds)
|
||||
{
|
||||
if (around == grid) continue;
|
||||
var target = around.Unit(mapData);
|
||||
if (target == null) continue;
|
||||
target.AddOrOverrideSkill(SkillType.SkillBan, mapData, info.DamageTarget.Id);
|
||||
}
|
||||
return SkillType.SKILLBANBOMB;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,19 +18,14 @@ namespace Logic.Skill
|
||||
{
|
||||
public SkillBanSkill()
|
||||
{
|
||||
IsPermanent = false;
|
||||
TurnsLimit = 1;
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.SkillBan;
|
||||
}
|
||||
|
||||
public override bool IsAllSkillBan()
|
||||
{
|
||||
return true;
|
||||
return SkillType.SKILLBAN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 不死技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
using TH1_Logic.Core;
|
||||
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class UndeadSkill : SkillBase
|
||||
{
|
||||
public UndeadSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.Undead;
|
||||
}
|
||||
|
||||
public override bool IsCanBeKill(UnitData self, MapData mapData)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void OnDamaged(MapData mapData, SettlementInfo info)
|
||||
{
|
||||
if (info.DamageTarget == null || info.DamageTarget.Health > 0) return;
|
||||
Main.UnitLogic.UnitUnnaturalDie(mapData, info.DamageTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 16f6a875ce184a35821ee1f354dbbb0b
|
||||
timeCreated: 1773043696
|
||||
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 空AOE移动技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class UtsuhoAoeMoveSkill : SkillBase
|
||||
{
|
||||
public UtsuhoAoeMoveSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.UTSUHOAOEMOVE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4b6a32be4a814be7bb94d841ed0849a1
|
||||
timeCreated: 1772778339
|
||||
@ -25,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.UtsuhoBoneMaker;
|
||||
return SkillType.UTSUHOBONEMAKER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.UtsuhoDelayAct;
|
||||
return SkillType.UTSUHODELAYACT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 空任务技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class UtsuhoMissionSkill : SkillBase
|
||||
{
|
||||
public UtsuhoMissionSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.UTSUHOMISSION;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4461bc9684a248e1b72b92927d309b16
|
||||
timeCreated: 1772778355
|
||||
@ -25,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.UtsuhoRadiation;
|
||||
return SkillType.UTSUHORADIATION;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 空准备移动技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class UtsuhoReadyMoveSkill : SkillBase
|
||||
{
|
||||
public UtsuhoReadyMoveSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.UtsuhoReadyMove;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ec8e682cfdc6428ca9412e30a684fb18
|
||||
timeCreated: 1773043756
|
||||
@ -1,28 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 空准备移动强化技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class UtsuhoReadyMoveSuperSkill : SkillBase
|
||||
{
|
||||
public UtsuhoReadyMoveSuperSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.UtsuhoReadyMoveSuper;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a935dbc697ff40b2b4115cd4c3b2d387
|
||||
timeCreated: 1773043771
|
||||
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 勇仪三格突进技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class YuugiDash3Skill : SkillBase
|
||||
{
|
||||
public YuugiDash3Skill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.YUUGIDASH3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4eb913b1cd2d48b1b62a8d623648700c
|
||||
timeCreated: 1772778364
|
||||
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 勇仪突进极限技能
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class YuugiDashMaxSkill : SkillBase
|
||||
{
|
||||
public YuugiDashMaxSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.YUUGIDASHMAX;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf45a4f21ce241b8b67e5977bcd33ee0
|
||||
timeCreated: 1772778373
|
||||
@ -1,12 +1,16 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 勇仪突进进阶技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Date: 2026年03月06日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MemoryPack;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
@ -21,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.YuugiDashPro;
|
||||
return SkillType.YUUGIDASHPRO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b60b23dafbb742ee911979d004fdcf68
|
||||
timeCreated: 1773043785
|
||||
guid: deb421f51aad462bbfdf7464d238fec7
|
||||
timeCreated: 1772778369
|
||||
@ -1,28 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 勇仪突进技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class YuugiDashSkill : SkillBase
|
||||
{
|
||||
public YuugiDashSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.YuugiDash;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a46bd86f07b46f3b43f9e744393ca35
|
||||
timeCreated: 1773043777
|
||||
@ -1,28 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 勇仪移动增强技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class YuugiMovePlusSkill : SkillBase
|
||||
{
|
||||
public YuugiMovePlusSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.YuugiMovePlus;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac059b63b6c043e982fa1ec2b312ef6f
|
||||
timeCreated: 1773043807
|
||||
@ -1,28 +0,0 @@
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 勇仪移动技能
|
||||
* @Date: 2026年03月09日
|
||||
* @Modify:
|
||||
*/
|
||||
|
||||
using RuntimeData;
|
||||
using MemoryPack;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
public partial class YuugiMoveSkill : SkillBase
|
||||
{
|
||||
public YuugiMoveSkill()
|
||||
{
|
||||
IsPermanent = true;
|
||||
TurnsLimit = 0;
|
||||
Score = 4;
|
||||
}
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.YuugiMove;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bd32fa53f5ea44f9b07dab1942317815
|
||||
timeCreated: 1773043799
|
||||
@ -25,7 +25,7 @@ namespace Logic.Skill
|
||||
|
||||
public override SkillType GetSkillType()
|
||||
{
|
||||
return SkillType.YuugiPush;
|
||||
return SkillType.YUUGIPUSH;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Auto-generated KoishiAutoMoveSkill partial class with MemoryPackable attribute
|
||||
// Auto-generated BonePileAttackSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
@ -7,7 +7,7 @@ using Logic.Skill;
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class KoishiAutoMoveSkill
|
||||
public partial class BonePileAttackSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31e31c3b301e2bc4bb39a217c2985c7b
|
||||
guid: bf8b16293b8c9c246b55c7e44d6800ad
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@ -1,4 +1,4 @@
|
||||
// Auto-generated UndeadSkill partial class with MemoryPackable attribute
|
||||
// Auto-generated CorpseBurnSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
@ -7,7 +7,7 @@ using Logic.Skill;
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class UndeadSkill
|
||||
public partial class CorpseBurnSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e6db9551f40eb6943b5cc39aab4603e0
|
||||
guid: 896f1d164dd0b7c42acd8319c2ec232b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@ -1,4 +1,4 @@
|
||||
// Auto-generated BoneSacrificeSkill partial class with MemoryPackable attribute
|
||||
// Auto-generated CorpseCollectSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
@ -7,7 +7,7 @@ using Logic.Skill;
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class BoneSacrificeSkill
|
||||
public partial class CorpseCollectSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 85b3a8f79bb50944c9ae466c12c3f570
|
||||
guid: 5541ecf1368e42f4b967cd6cee8aacdc
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@ -1,4 +1,4 @@
|
||||
// Auto-generated KoishiUndeadSkill partial class with MemoryPackable attribute
|
||||
// Auto-generated CorpseEffectSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
@ -7,7 +7,7 @@ using Logic.Skill;
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class KoishiUndeadSkill
|
||||
public partial class CorpseEffectSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 534b99977e35fc0418cb571531f6f924
|
||||
guid: 11db9b4189709ec41958e11aab8e7f9e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@ -1,4 +1,4 @@
|
||||
// Auto-generated FearMakerSkill partial class with MemoryPackable attribute
|
||||
// Auto-generated CorpseFireSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
@ -7,7 +7,7 @@ using Logic.Skill;
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class FearMakerSkill
|
||||
public partial class CorpseFireSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 024a53f169cb9744a9000d32c9fc3052
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c74ac71107d26194ebc34bbb5873ac31
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,13 @@
|
||||
// Auto-generated KoishiBoneHealSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
using Logic.Skill;
|
||||
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class KoishiBoneHealSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59ff114c60ea3f04cad25625b889f735
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,4 +1,4 @@
|
||||
// Auto-generated YuugiDashSkill partial class with MemoryPackable attribute
|
||||
// Auto-generated KoishiFreeSkill partial class with MemoryPackable attribute
|
||||
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
|
||||
|
||||
using MemoryPack;
|
||||
@ -7,7 +7,7 @@ using Logic.Skill;
|
||||
namespace Logic.Skill
|
||||
{
|
||||
[MemoryPackable]
|
||||
public partial class YuugiDashSkill
|
||||
public partial class KoishiFreeSkill
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6dc5a6f853cb4564aa0acbd875c927c2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ce5945e62b63e4e4ba9ad182c1cea4fe
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user