0425提交 #107

Merged
yjm484 merged 2 commits from dev-0425-yjm into dev-1217 8 months ago
  1. 14
      ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset
  2. 10
      ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset
  3. 7
      ColorlessWorld-2024-4-2/Assets/Lana Studio/Casual RPG VFX/Upgrade for URP/Upgrade for URP.unitypackage.meta
  4. 27
      ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta
  5. 13
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  6. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Calm.cs
  7. 16
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs
  8. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs
  9. 93
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AStar/AStarManager.cs
  10. 9
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs
  11. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs
  12. 66
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs
  13. 60
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs
  14. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs
  15. 6
      ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv

14
ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset

@ -13,18 +13,18 @@ MonoBehaviour:
m_Name: PlayerState
m_EditorClassIdentifier:
playerName: Julius
maxStepRange: 2
currentStepRange: 3
maxCost: 3
currentCost: 0
maxStepRange: 5
currentStepRange: 5
maxCost: 10
currentCost: 10
maxShieldValue: 0
currentShieldValue: 0
maxHP: 68
currentHP: 42
maxHP: 1000
currentHP: 1000
cardRewardNumToChoose: 0
cardRewardNumToGget: 0
canColorCount: 20
castRange: 2
money: 0
money: 500
forgingPoint: 50
priceMultiplier: 1

10
ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset

@ -14,15 +14,15 @@ MonoBehaviour:
m_EditorClassIdentifier:
cardDeckList:
- 2006
- 2031
- 2036
- 2031
- 1005
- 2006
- 2023
- 2023
- 1005
- 1005
- 1005
- 1005
- 1005
- 2006
- 1005
- 1005
- 2006
- 2023

7
ColorlessWorld-2024-4-2/Assets/Lana Studio/Casual RPG VFX/Upgrade for URP/Upgrade for URP.unitypackage.meta

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 5b07afdbcf13e43438545d591cfd2e4b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

27
ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta

@ -0,0 +1,27 @@
fileFormatVersion: 2
guid: a94cf6fef2879da4c91e5ef768aadf4e
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

13
ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity

@ -17088,7 +17088,6 @@ MonoBehaviour:
canAction: 0
buffInforOnMouse: {fileID: 365854629}
buffInforOnMouseInStatus: {fileID: 14209053}
expectDamage: 0
expectOnceDamage: 0
--- !u!1 &498711090
GameObject:
@ -21622,7 +21621,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 41.140015, y: 208}
m_AnchoredPosition: {x: 41.139893, y: 208}
m_SizeDelta: {x: 378.96, y: 143.38}
m_Pivot: {x: 0, y: 0.5}
--- !u!1 &668478574
@ -51939,7 +51938,15 @@ MonoBehaviour:
generatePoint: {fileID: 514899946}
lineOffSet: {x: 1.43, y: 0, z: 0}
columnOffSet: {x: 0, y: 0, z: 0.86}
enemyGenerateDataList: []
enemyGenerateDataList:
- enemyPrefab: {fileID: 1253231568001379261, guid: e522f0447cdcaec47bf331fd755f7209,
type: 3}
locationX: -1
locationY: 3
- enemyPrefab: {fileID: 1253231568001379261, guid: e522f0447cdcaec47bf331fd755f7209,
type: 3}
locationX: 2
locationY: 2
mapUnityFather: {fileID: 471426433}
playerNameText: {fileID: 1103775266}
cardDeckNumberText: {fileID: 1577863296}

2
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Calm.cs

@ -7,7 +7,7 @@ public class Buff_Calm : Buff
{
public override void Settle()
{
value = 0;
}

16
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs

@ -220,7 +220,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
if (mapUnities.Contains(getNodeTools .LocationToGetNode (positionX ,positionY)))
{
enemyUIBar.isSync = false;
float remainDamage = EnemyState.shieldValue - ExpectSufferDamageCal(Usermanager.Instance.expectDamage);
float remainDamage = EnemyState.shieldValue - ExpectSufferDamageCal(Usermanager.Instance.expectDamage, getNodeTools.LocationToGetNode(positionX, positionY));
if (remainDamage >= 0)
{
enemyUIBar.sheildText.text = remainDamage.ToString();
@ -1631,7 +1631,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
}
}
public int ExpectSufferDamageCal((float, int) damge)
public int ExpectSufferDamageCal((float, int,int) damge,MapUnity target)
{
int trueDamage = 0;
for (int i = 0; i < damge.Item2; i++)
@ -1640,7 +1640,17 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
}
if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed))
{
int bleedCount = Math.Min(EnemyState.abnormalCondition[AbnormalCondition.bleed].value, damge.Item2);
int canBleedCount = 0;
canBleedCount += damge.Item2;
if (damge.Item3!=0)
{
canBleedCount += CardManager.getRepelCount(target, damge.Item3);
}
/*if ()
{
}*/
int bleedCount = Math.Min(EnemyState.abnormalCondition[AbnormalCondition.bleed].value, canBleedCount);
int bleedDamage = 2;
if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.bleedDamage))
{

2
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs

@ -13,7 +13,7 @@ public class FailedSample: Enemy
private void Start()
{
enemyNode = GetComponent<EnemyNode>();
enemyNode.sufferAbnormalCondition(AbnormalCondition.corrode, 1);
//enemyNode.sufferAbnormalCondition(AbnormalCondition.corrode, 1);
enemyNode.sufferAbnormalCondition(AbnormalCondition.Buff_FailedSample, 1);
actionPool.Add(EnemyPlanUIManager.Instance.NewAction(EnemyPlanUIFunction.attackAndPollute), 1.0f);

93
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AStar/AStarManager.cs

@ -82,6 +82,70 @@ public class AStarManager : Singleton<AStarManager>
}
}
public List<MapUnity> FindDirectPath(MapUnity starNode, MapUnity endNode)
{
//判断传入的点是否合法
//1.在地图范围内 2.不是阻挡,不合法返回null不能寻路
if (endNode.blocked == true)
{
return null;
}
if (starNode == endNode)
{
return null;
}
//得到起点和终点对应的格子
//清空上一次列表数据
closeList.Clear();
openList.Clear();
//把起点放到关闭列表中
starNode.aStarNode.fatherNode = null;
starNode.aStarNode.f = 0;
starNode.aStarNode.g = 0;
starNode.aStarNode.h = 0;
closeList.Add(starNode);
while (true)
{
//从起点开始找周围的点放入开启列表中
//判断这些点是否是边界是否是阻挡,是否在开启列表或者关闭列表中,都不是才能放入
FindNodeToOpenListDirectly(starNode, endNode);
//选出开启列表中寻路消耗最小的点
openList.Sort(SortOpenList);
//死路判断
if (openList.Count == 0)
{
Debug.Log("无法找到路径");
return null;
}
//放入关闭列表中,再从开启列表中移除
closeList.Add(openList[0]);
starNode = openList[0];
openList.RemoveAt(0);
//如果已经是终点,返回路径
//如果不是结果,继续寻路
if (starNode == endNode)
{
//找到路径,回溯路径
List<MapUnity> path = new List<MapUnity>();
//path.Add(endNode);
while (endNode.aStarNode.fatherNode != null)
{
path.Add(endNode.aStarNode.fatherNode);
endNode = endNode.aStarNode.fatherNode;
}
//列表反置
path.Reverse();
return path;
}
}
}
public List<MapUnity> FindPathWithEndNode(MapUnity starNode, MapUnity endNode)
{
List<MapUnity> path = new List<MapUnity>();
@ -186,6 +250,35 @@ public class AStarManager : Singleton<AStarManager>
}
}
public void FindNodeToOpenListDirectly(MapUnity currentNode, MapUnity endNode)
{
for (int i = 0; i < currentNode.unitPool.Count; i++)
{
if (currentNode.unitPool[i] == null || currentNode.unitPool[i].blocked == true)
{
//不加入起点
}
else if (openList.Contains(currentNode.unitPool[i]) || closeList.Contains(currentNode.unitPool[i]))
{
//不加入起点
}
else
{
//记录父对象
currentNode.unitPool[i].aStarNode.fatherNode = currentNode;
//计算g.累计父对象的g
currentNode.unitPool[i].aStarNode.g = currentNode.unitPool[i].aStarNode.fatherNode.aStarNode.g + 1;
// currentNode.unitPool[i].aStarNode.h = Mathf.Abs(endNode.locationX - currentNode.unitPool[i].locationX) + Mathf.Abs(endNode.locationY - currentNode.unitPool[i].locationY);
currentNode.unitPool[i].aStarNode.h = Vector3.Distance(endNode.transform.position, currentNode.unitPool[i].transform.position);
currentNode.unitPool[i].aStarNode.f = currentNode.unitPool[i].aStarNode.g + currentNode.unitPool[i].aStarNode.h;
openList.Add(currentNode.unitPool[i]);
//Debug.Log("x" + currentNode.unitPool[i].locationX + "y" + currentNode.unitPool[i].locationY + "f" + currentNode.unitPool[i].aStarNode.f);
}
}
}
//玩家能到达的范围(广度优先)
public HashSet <MapUnity> PlayerCanArrivedRange(MapUnity startMapUnity,int step)
{

9
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs

@ -68,6 +68,10 @@ public class MathTool
new int[] { 0, -1, 1 } // 方向 5, 对应 300°
};
(int q, int s, int r)=GetRelativeCoordinates(targetNode, originNode);
if (q==-1&&s==-1&&r==-1)
{
return (-1, -1, -1);
}
// 找到最接近的方向
int bestDirection = -1;
int maxDotProduct = int.MinValue;
@ -204,7 +208,10 @@ public class MathTool
public static (int x, int y, int z) GetRelativeCoordinates(MapUnity targetNode, MapUnity newOrigin)
{
if (newOrigin == null|| targetNode==null)
{
return (-1,-1,-1);
}
int newX = targetNode.cubeQ - newOrigin.cubeQ;
int newY = targetNode.cubeS - newOrigin.cubeS;

4
ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs

@ -158,6 +158,10 @@ public class BuffDataManager : Singleton<BuffDataManager>
return "增加流血伤害";
case AbnormalCondition.firm:
return "护盾在你回合开始时不会消失";
case AbnormalCondition.calm:
return "增加施法距离";
case AbnormalCondition.tempCastRange:
return "本回合增加施法距离";
}
return " ";

66
ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs

@ -13,6 +13,7 @@ using UnityEngine;
using UnityEngine.Rendering;
using static GameManager;
using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray;
using static UnityEngine.EventSystems.EventTrigger;
using static UnityEngine.Rendering.DebugUI;
public class CardManager : Singleton<CardManager>
@ -28,7 +29,15 @@ public class CardManager : Singleton<CardManager>
//CardOriginalData newCardOriginalData=cardOriginalData;
CardOriginalData newCardOriginalData = JsonConvert.DeserializeObject<CardOriginalData>(JsonConvert.SerializeObject(cardOriginalData));
newCardOriginalData.condition[0] = newCondition;
string newCardId=AddElementToDictionary(CardOriginalDataList.Instance.existEffectCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData);
string newCardId = "";
if (CardOriginalDataList.Instance.existEffectCardOriginalDataList.ContainsKey(cardOriginalData.CardId))
{
newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existEffectCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData);
}
else
{
newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existAbilityCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData);
}
return newCardId;
}
@ -72,7 +81,16 @@ public class CardManager : Singleton<CardManager>
}
newCardOriginalData.conditionFunctionVal.Add(newFunAndVal.Key, newFunAndVal.Value);
}
string newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existEffectCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData);
string newCardId = "";
if (CardOriginalDataList.Instance.existEffectCardOriginalDataList.ContainsKey(cardOriginalData.CardId))
{
newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existEffectCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData);
}
else
{
newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existAbilityCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData);
}
return newCardId;
}
@ -271,6 +289,50 @@ public class CardManager : Singleton<CardManager>
}
public static int getRepelCount(MapUnity influencePreviewPool, int count)
{
MapUnity targetNode = GameManager.Instance.playerOn;
List<MapUnity> pool = new List<MapUnity> { influencePreviewPool };
int repelCount = 0;
pool.Remove(targetNode);
List<MapUnity> sortedPool = MathTool.sortByCubeDistance(pool, targetNode);
foreach (MapUnity mapUnity in sortedPool)
{
if (mapUnity.enemyNode != null && mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy)
{
MapUnity repelNode = mapUnity;
MapUnity endNode = null;
for (int i = 0; i < count; i++)
{
(int q, int s, int r) = MathTool.findRepelNode(repelNode, targetNode);
if (q == -1 && s == -1 && r == -1)
{
break;
}
MapUnity result = getNodeTools.getNodeWithCube(q, s, r);
if (result == null)
{
break;
}
if (result.enemyNode == null)
{
endNode = result;
}
repelNode = result;
}
Debug.Log("endNodeÊÇ"+endNode.locationX+endNode.locationY);
List<MapUnity> path = AStarManager.Instance.FindDirectPath(mapUnity, endNode);
repelCount=path.Count;
}
}
return repelCount;
}
public static void createOneCardImage(CardOriginalData cardOriginalData,int startX,int startY)//Ϊµ¥¶ÀÒ»ÕÅ¿¨´´½¨Í¼Æ¬
{
MapUnity currentNode = CardPictureManager.Instance.ToolX[startX].Y[startY];

60
ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs

@ -1,11 +1,13 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Unity.VisualScripting;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
using static Name;
using static UnityEngine.EventSystems.EventTrigger;
public class SettlementManager : Singleton<SettlementManager>
@ -534,16 +536,37 @@ public class SettlementManager : Singleton<SettlementManager>
if (mapUnity.enemyNode != null&& mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy)
{
MapUnity repelNode = mapUnity;
MapUnity endNode= null;
GameObject enemy = mapUnity.enemyNode.GameObject();
for (int i = 0; i < count; i++)
{
(int q, int s, int r) = MathTool.findRepelNode(repelNode, targetNode);
if (q == -1 && s == -1 && r == -1)
{
break;
}
Debug.Log("qsr是" + q + s + r);
MapUnity result = getNodeTools.getNodeWithCube(q, s, r);
GameObject enemy = repelNode.enemyNode.GameObject();
if (result == null)
{
Debug.Log("退出的qsr是" + q + s + r);
break;
}
Debug.Log(enemy);
enemyMoveToNode(enemy, result, repelNode.enemyNode);
if (result.enemyNode == null)
{
endNode = result;
Debug.Log("没退出的endNode是+" + endNode.locationX + endNode.locationY);
}
repelNode = result;
}
Debug.Log("endNode是" + endNode.locationX + endNode.locationY);
if (endNode != null)
{
enemyMoveToNode(enemy, endNode, mapUnity.enemyNode);
}
}
}
@ -563,6 +586,10 @@ public class SettlementManager : Singleton<SettlementManager>
{
(int q, int s, int r) = MathTool.findRepelNode(repelNode, targetNode);
if (q == -1 && s == -1 && r == -1)
{
return;
}
MapUnity result = getNodeTools.getNodeWithCube(q, s, r);
GameObject enemy = repelNode.enemyNode.GameObject();
Debug.Log(enemy);
@ -627,23 +654,17 @@ public class SettlementManager : Singleton<SettlementManager>
private void bleedRealize(EnemyNode enemyNode, MapUnity start, MapUnity end)
{
if (enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed))
{
List<MapUnity> path = AStarManager.Instance.FindPathWithEndNode(start, end);
foreach (var node in path)
{
enemyNode.sufferDamage(2, false);
enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value -= 1;
if (enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value <= 0)
List<MapUnity> path = AStarManager.Instance.FindDirectPath(start, end);
Debug.Log("start是" + start.locationX+ start.locationY + "end是" + end.locationX + end.locationY + "path大小是" + path.Count);
for(int i=0;i<path.Count;i++)
{
enemyNode.EnemyState.abnormalCondition.Remove(AbnormalCondition.bleed);
}
}
enemyNode.bleedRealize();
}
}
private void enemyMoveToNode(GameObject enemy,MapUnity endNode,EnemyNode enemyNode)
private void enemyMoveToNode(GameObject enemy,MapUnity endNode, EnemyNode enemyNode)
{
if (endNode==null||endNode.enemyNode != null||!endNode.gameObject.activeInHierarchy)
{
@ -653,6 +674,7 @@ public class SettlementManager : Singleton<SettlementManager>
}
MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY);
currentNode.blocked = false;
bleedRealize(enemyNode, currentNode, endNode);
currentNode.enemyNode = null;
enemyNode.positionX = endNode.locationX;
enemyNode.positionY = endNode.locationY;
@ -668,7 +690,10 @@ public class SettlementManager : Singleton<SettlementManager>
enemy.transform.position = Vector3.Lerp(enemy.transform.position, endNode.transform.position, Time.deltaTime * 4);
}
ParasitismnRealize(enemyNode,currentNode,endNode);
bleedRealize(enemyNode, currentNode, endNode);
/*for (int i = 0; i < bleedCount; i++)
{
enemyNode.bleedRealize();
}*/
//enemy.transform.position = new Vector3(endNode.transform.position.x, 0.5f, endNode.transform.position.z);
}
@ -1113,11 +1138,14 @@ public class SettlementManager : Singleton<SettlementManager>
Dictionary<string, string> trueFunctionVal = new Dictionary<string, string>();
trueFunctionVal.AddRange(cardOriginalData.TrueFunctionVal);
Usermanager.Instance.expectDamage = (0,0);
Usermanager.Instance.expectDamage = (0,0,0);
foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
switch (kvp.Key)
{
case CardFunction.repel:
Usermanager.Instance.expectDamage.repelCount = int.Parse(kvp.Value);
break;
case CardFunction.cardDamage:
// damageWork(int.Parse(kvp.Value), influencePreviewPool, pierceNum);
Usermanager .Instance .expectDamage.Item1 = Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value));

2
ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs

@ -49,7 +49,7 @@ public class Usermanager : Singleton<Usermanager>
public BuffInforOnMouse buffInforOnMouseInStatus;
[Header("角色将要造成的伤害")]
public (float, int) expectDamage;
public (float damage, int damageCount, int repelCount) expectDamage;
[Header("角色将要造成的单次伤害")]
public float expectOnceDamage;
//费用和步数检查

6
ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv

@ -1,9 +1,9 @@
ID,费用类型,费用,施法范围,作用范围,条件,功能,数值,地块标记,地块颜色,图片路径,名称,稀有度
1001,1,1,1,3_1,none,1,5,0_0;1_0;2_0,white;white;white,CardIcon/1010,挥砍,1
1002,1,1,1,3_1,none,2,4,0_0;-1_1;-1_-1,white;white;white,CardIcon/1010,格挡,1
1003,1,1,1,3_1,none,40,1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,white;white;white;white;white;white,CardIcon/1010,烟圈,1
1003,1,1,0,3_1,none,40,1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,white;white;white;white;white;white,CardIcon/1010,烟圈,1
1004,1,2,1,3_1,none,12;13,2;2,0_0;1_0;0_-1;0_1,blue;blue;red;red,CardIcon/1011,搜索,1
1005,1,1,1,3_1,none,1;12,8;1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,red;red;red;red;red;red,CardIcon/1012,刀扇,2
1005,1,1,0,3_1,none,1;12,8;1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,red;red;red;red;red;red,CardIcon/1012,刀扇,2
1006,1,0,1,3_1,none,13,2,1_0;0_-1;0_1;2_0;1_-1;1_1,red;red;red;blue;blue;blue,CardIcon/1013,喷吐,2
1009,1,1,1,3_1,none,23,1,0_0;1_0;2_0,green;green;green,CardIcon/1016,突刺,2
1010,1,2,1,3_1,none,19,2,0_0;1_0;2_0;1_1;1_-1,blue;blue;blue;blue;blue,CardIcon/1017,重锤,1
@ -11,6 +11,6 @@
1012,1,0,1,3_1,none,none,none,0_0;1_0;0_1,yellow;red;blue,CardIcon/1019,彩球,1
1013,1,2,1,3_1,none,2,10,1_0;0_-1;0_1;2_0;1_-1;1_1;3_0;2_1;2_-1,red;red;red;blue;blue;blue;yellow;yellow;yellow,CardIcon/1020,九宫格,2
1014,1,2,1,3_1,none,1,7,1_0;2_0;3_0;-1_1;-1_2;-2_3;-1_-1;-1_-2;-2_-3,red;red;red;yellow;yellow;yellow;blue;blue;blue,CardIcon/1021,三色线,2
1016,1,1,1,3_1,none,53,2-3,0_0;1_0;2_0;0_1;0_-1;1_2;1_-2,red;red;red;red;red;red;red,CardIcon/1021,散射,1
1016,1,1,1,3_1,none,53,2&3,0_0;1_0;2_0;0_1;0_-1;1_2;1_-2,red;red;red;red;red;red;red,CardIcon/1021,散射,1
1017,1,2,1,3_1,none,17,1,0_0;1_0;2_0;3_0;2_1;2_-1;2_2;2_-2,blue;blue;blue;blue;blue;blue;blue;blue,CardIcon/1021,单向箭头,2
1007,1,3,1,3_1,none,1,32,0_0;1_0;0_1;0_-1;1_1;1_-1;1_2;1_-2,black;black;black;black;black;black;black;black,CardIcon/1021,黑火药,3

1 ID 费用类型 费用 施法范围 作用范围 条件 功能 数值 地块标记 地块颜色 图片路径 名称 稀有度
2 1001 1 1 1 3_1 none 1 5 0_0;1_0;2_0 white;white;white CardIcon/1010 挥砍 1
3 1002 1 1 1 3_1 none 2 4 0_0;-1_1;-1_-1 white;white;white CardIcon/1010 格挡 1
4 1003 1 1 1 0 3_1 none 40 1 1_0;0_1;0_-1;-1_0;-1_1;-1_-1 white;white;white;white;white;white CardIcon/1010 烟圈 1
5 1004 1 2 1 3_1 none 12;13 2;2 0_0;1_0;0_-1;0_1 blue;blue;red;red CardIcon/1011 搜索 1
6 1005 1 1 1 0 3_1 none 1;12 8;1 1_0;0_1;0_-1;-1_0;-1_1;-1_-1 red;red;red;red;red;red CardIcon/1012 刀扇 2
7 1006 1 0 1 3_1 none 13 2 1_0;0_-1;0_1;2_0;1_-1;1_1 red;red;red;blue;blue;blue CardIcon/1013 喷吐 2
8 1009 1 1 1 3_1 none 23 1 0_0;1_0;2_0 green;green;green CardIcon/1016 突刺 2
9 1010 1 2 1 3_1 none 19 2 0_0;1_0;2_0;1_1;1_-1 blue;blue;blue;blue;blue CardIcon/1017 重锤 1
11 1012 1 0 1 3_1 none none none 0_0;1_0;0_1 yellow;red;blue CardIcon/1019 彩球 1
12 1013 1 2 1 3_1 none 2 10 1_0;0_-1;0_1;2_0;1_-1;1_1;3_0;2_1;2_-1 red;red;red;blue;blue;blue;yellow;yellow;yellow CardIcon/1020 九宫格 2
13 1014 1 2 1 3_1 none 1 7 1_0;2_0;3_0;-1_1;-1_2;-2_3;-1_-1;-1_-2;-2_-3 red;red;red;yellow;yellow;yellow;blue;blue;blue CardIcon/1021 三色线 2
14 1016 1 1 1 3_1 none 53 2-3 2&3 0_0;1_0;2_0;0_1;0_-1;1_2;1_-2 red;red;red;red;red;red;red CardIcon/1021 散射 1
15 1017 1 2 1 3_1 none 17 1 0_0;1_0;2_0;3_0;2_1;2_-1;2_2;2_-2 blue;blue;blue;blue;blue;blue;blue;blue CardIcon/1021 单向箭头 2
16 1007 1 3 1 3_1 none 1 32 0_0;1_0;0_1;0_-1;1_1;1_-1;1_2;1_-2 black;black;black;black;black;black;black;black CardIcon/1021 黑火药 3
Loading…
Cancel
Save