Browse Source

冲突合并0425

pull/108/head
45 8 months ago
parent
commit
60666b5484
  1. 14
      ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset
  2. 16
      ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset
  3. 27
      ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta
  4. 10
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  5. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Calm.cs
  6. 16
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs
  7. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs
  8. 93
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AStar/AStarManager.cs
  9. 9
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs
  10. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs
  11. 66
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs
  12. 60
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs
  13. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs
  14. 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_Name: PlayerState
m_EditorClassIdentifier: m_EditorClassIdentifier:
playerName: Julius playerName: Julius
maxStepRange: 3 maxStepRange: 5
currentStepRange: 2 currentStepRange: 5
maxCost: 3 maxCost: 10
currentCost: 3 currentCost: 10
maxShieldValue: 0 maxShieldValue: 0
currentShieldValue: 0 currentShieldValue: 0
maxHP: 68 maxHP: 1000
currentHP: 17 currentHP: 1000
cardRewardNumToChoose: 0 cardRewardNumToChoose: 0
cardRewardNumToGget: 0 cardRewardNumToGget: 0
canColorCount: 20 canColorCount: 20
castRange: 2 castRange: 2
money: 0 money: 500
forgingPoint: 50 forgingPoint: 50
priceMultiplier: 1 priceMultiplier: 1

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

@ -13,12 +13,16 @@ MonoBehaviour:
m_Name: cardDeckList m_Name: cardDeckList
m_EditorClassIdentifier: m_EditorClassIdentifier:
cardDeckList: cardDeckList:
- 2006
- 2006
- 2023
- 2023
- 1005 - 1005
- 1005 - 1005
- 1005 - 1005
- 2017 - 1005
- 2017 - 1005
- 2002 - 2006
- 2002 - 1005
- 2031 - 1005
- 2031 - 2023

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:

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

@ -51930,7 +51930,15 @@ MonoBehaviour:
generatePoint: {fileID: 514899946} generatePoint: {fileID: 514899946}
lineOffSet: {x: 1.43, y: 0, z: 0} lineOffSet: {x: 1.43, y: 0, z: 0}
columnOffSet: {x: 0, y: 0, z: 0.86} 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} mapUnityFather: {fileID: 471426433}
playerNameText: {fileID: 1103775266} playerNameText: {fileID: 1103775266}
cardDeckNumberText: {fileID: 1577863296} 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() 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))) if (mapUnities.Contains(getNodeTools .LocationToGetNode (positionX ,positionY)))
{ {
enemyUIBar.isSync = false; 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) if (remainDamage >= 0)
{ {
enemyUIBar.sheildText.text = remainDamage.ToString(); 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; int trueDamage = 0;
for (int i = 0; i < damge.Item2; i++) for (int i = 0; i < damge.Item2; i++)
@ -1640,7 +1640,17 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
} }
if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) 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; int bleedDamage = 2;
if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.bleedDamage)) 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() private void Start()
{ {
enemyNode = GetComponent<EnemyNode>(); enemyNode = GetComponent<EnemyNode>();
// enemyNode.sufferAbnormalCondition(AbnormalCondition.corrode, 1); //enemyNode.sufferAbnormalCondition(AbnormalCondition.corrode, 1);
enemyNode.sufferAbnormalCondition(AbnormalCondition.Buff_FailedSample, 1); enemyNode.sufferAbnormalCondition(AbnormalCondition.Buff_FailedSample, 1);
actionPool.Add(EnemyPlanUIManager.Instance.NewAction(EnemyPlanUIFunction.attackAndPollute), 1.0f); 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) public List<MapUnity> FindPathWithEndNode(MapUnity starNode, MapUnity endNode)
{ {
List<MapUnity> path = new List<MapUnity>(); 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) 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° new int[] { 0, -1, 1 } // 方向 5, 对应 300°
}; };
(int q, int s, int r)=GetRelativeCoordinates(targetNode, originNode); (int q, int s, int r)=GetRelativeCoordinates(targetNode, originNode);
if (q==-1&&s==-1&&r==-1)
{
return (-1, -1, -1);
}
// 找到最接近的方向 // 找到最接近的方向
int bestDirection = -1; int bestDirection = -1;
int maxDotProduct = int.MinValue; int maxDotProduct = int.MinValue;
@ -204,7 +208,10 @@ public class MathTool
public static (int x, int y, int z) GetRelativeCoordinates(MapUnity targetNode, MapUnity newOrigin) 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 newX = targetNode.cubeQ - newOrigin.cubeQ;
int newY = targetNode.cubeS - newOrigin.cubeS; 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 "增加流血伤害"; return "增加流血伤害";
case AbnormalCondition.firm: case AbnormalCondition.firm:
return "护盾在你回合开始时不会消失"; return "护盾在你回合开始时不会消失";
case AbnormalCondition.calm:
return "增加施法距离";
case AbnormalCondition.tempCastRange:
return "本回合增加施法距离";
} }
return " "; return " ";

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

@ -13,6 +13,7 @@ using UnityEngine;
using UnityEngine.Rendering; using UnityEngine.Rendering;
using static GameManager; using static GameManager;
using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray; using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray;
using static UnityEngine.EventSystems.EventTrigger;
using static UnityEngine.Rendering.DebugUI; using static UnityEngine.Rendering.DebugUI;
public class CardManager : Singleton<CardManager> public class CardManager : Singleton<CardManager>
@ -28,7 +29,15 @@ public class CardManager : Singleton<CardManager>
//CardOriginalData newCardOriginalData=cardOriginalData; //CardOriginalData newCardOriginalData=cardOriginalData;
CardOriginalData newCardOriginalData = JsonConvert.DeserializeObject<CardOriginalData>(JsonConvert.SerializeObject(cardOriginalData)); CardOriginalData newCardOriginalData = JsonConvert.DeserializeObject<CardOriginalData>(JsonConvert.SerializeObject(cardOriginalData));
newCardOriginalData.condition[0] = newCondition; 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; return newCardId;
} }
@ -72,7 +81,16 @@ public class CardManager : Singleton<CardManager>
} }
newCardOriginalData.conditionFunctionVal.Add(newFunAndVal.Key, newFunAndVal.Value); 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; 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)//Ϊµ¥¶ÀÒ»ÕÅ¿¨´´½¨Í¼Æ¬ public static void createOneCardImage(CardOriginalData cardOriginalData,int startX,int startY)//Ϊµ¥¶ÀÒ»ÕÅ¿¨´´½¨Í¼Æ¬
{ {
MapUnity currentNode = CardPictureManager.Instance.ToolX[startX].Y[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;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using Unity.VisualScripting; using Unity.VisualScripting;
using UnityEditor.Experimental.GraphView; using UnityEditor.Experimental.GraphView;
using UnityEngine; using UnityEngine;
using static Name; using static Name;
using static UnityEngine.EventSystems.EventTrigger;
public class SettlementManager : Singleton<SettlementManager> public class SettlementManager : Singleton<SettlementManager>
@ -534,16 +536,37 @@ public class SettlementManager : Singleton<SettlementManager>
if (mapUnity.enemyNode != null&& mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy) if (mapUnity.enemyNode != null&& mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy)
{ {
MapUnity repelNode = mapUnity; MapUnity repelNode = mapUnity;
MapUnity endNode= null;
GameObject enemy = mapUnity.enemyNode.GameObject();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
(int q, int s, int r) = MathTool.findRepelNode(repelNode, targetNode); (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); 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); Debug.Log(enemy);
enemyMoveToNode(enemy, result, repelNode.enemyNode); if (result.enemyNode == null)
{
endNode = result;
Debug.Log("没退出的endNode是+" + endNode.locationX + endNode.locationY);
}
repelNode = result; 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); (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); MapUnity result = getNodeTools.getNodeWithCube(q, s, r);
GameObject enemy = repelNode.enemyNode.GameObject(); GameObject enemy = repelNode.enemyNode.GameObject();
Debug.Log(enemy); Debug.Log(enemy);
@ -627,23 +654,17 @@ public class SettlementManager : Singleton<SettlementManager>
private void bleedRealize(EnemyNode enemyNode, MapUnity start, MapUnity end) private void bleedRealize(EnemyNode enemyNode, MapUnity start, MapUnity end)
{ {
if (enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) List<MapUnity> path = AStarManager.Instance.FindDirectPath(start, end);
{ Debug.Log("start是" + start.locationX+ start.locationY + "end是" + end.locationX + end.locationY + "path大小是" + path.Count);
List<MapUnity> path = AStarManager.Instance.FindPathWithEndNode(start, end); for(int i=0;i<path.Count;i++)
foreach (var node in path)
{
enemyNode.sufferDamage(2, false);
enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value -= 1;
if (enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value <= 0)
{ {
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) 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); MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY);
currentNode.blocked = false; currentNode.blocked = false;
bleedRealize(enemyNode, currentNode, endNode);
currentNode.enemyNode = null; currentNode.enemyNode = null;
enemyNode.positionX = endNode.locationX; enemyNode.positionX = endNode.locationX;
enemyNode.positionY = endNode.locationY; 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); enemy.transform.position = Vector3.Lerp(enemy.transform.position, endNode.transform.position, Time.deltaTime * 4);
} }
ParasitismnRealize(enemyNode,currentNode,endNode); 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); //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>(); Dictionary<string, string> trueFunctionVal = new Dictionary<string, string>();
trueFunctionVal.AddRange(cardOriginalData.TrueFunctionVal); trueFunctionVal.AddRange(cardOriginalData.TrueFunctionVal);
Usermanager.Instance.expectDamage = (0,0); Usermanager.Instance.expectDamage = (0,0,0);
foreach (KeyValuePair<string, string> kvp in trueFunctionVal) foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{ {
switch (kvp.Key) switch (kvp.Key)
{ {
case CardFunction.repel:
Usermanager.Instance.expectDamage.repelCount = int.Parse(kvp.Value);
break;
case CardFunction.cardDamage: case CardFunction.cardDamage:
// damageWork(int.Parse(kvp.Value), influencePreviewPool, pierceNum); // damageWork(int.Parse(kvp.Value), influencePreviewPool, pierceNum);
Usermanager .Instance .expectDamage.Item1 = Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)); 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; public BuffInforOnMouse buffInforOnMouseInStatus;
[Header("角色将要造成的伤害")] [Header("角色将要造成的伤害")]
public (float, int) expectDamage; public (float damage, int damageCount, int repelCount) expectDamage;
[Header("角色将要造成的单次伤害")] [Header("角色将要造成的单次伤害")]
public float expectOnceDamage; public float expectOnceDamage;
//费用和步数检查 //费用和步数检查

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

@ -1,9 +1,9 @@
ID,费用类型,费用,施法范围,作用范围,条件,功能,数值,地块标记,地块颜色,图片路径,名称,稀有度 ID,费用类型,费用,施法范围,作用范围,条件,功能,数值,地块标记,地块颜色,图片路径,名称,稀有度
1001,1,1,1,3_1,none,1,5,0_0;1_0;2_0,white;white;white,CardIcon/1010,挥砍,1 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 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 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 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 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 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 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 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 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 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 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