Browse Source

0626提交

pull/4/head
yjm484 2 years ago
parent
commit
630b0e0959
  1. 49
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  2. 33
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs
  3. 525
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEnity_OldSave.cs
  4. 37
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs
  5. 33
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalData.cs
  6. 27
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs
  7. 5
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs
  8. 25
      ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs
  9. 51
      ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler1.cs
  10. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler1.cs.meta
  11. 6
      ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandlerBase.cs
  12. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs
  13. 14
      ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs
  14. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs
  15. 6
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/GameRoundManager.cs
  16. 41
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs
  17. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs.meta
  18. 156
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs
  19. 6
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs
  20. 18
      ColorlessWorld-2024-4-2/Assets/data/card_data.csv
  21. 136
      ColorlessWorld-2024-4-2/UserSettings/Layouts/default-2022.dwlt

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

@ -3283,6 +3283,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0ddfb517f3ae49c42b2c7ff57e12f8d8, type: 3}
m_Name:
m_EditorClassIdentifier:
health: 0
shield: 0
totalCost: 0
--- !u!1 &514899946
GameObject:
@ -6284,7 +6286,7 @@ MonoBehaviour:
cardPrefab: {fileID: 3410471369990512392, guid: d255d4b8a06372542bcbeef98cf4761c,
type: 3}
cardList: 00000000
cardDeck: 112700001127000011270000112700001127000011270000112700001127000011270000112700001127000011270000
cardDeck: 1127000012270000132700001427000015270000162700001727000018270000192700001a2700001b2700001c2700001d2700001e270000
--- !u!4 &1190351098
Transform:
m_ObjectHideFlags: 0
@ -9035,6 +9037,50 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1704571197}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1734618459
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1734618460}
- component: {fileID: 1734618461}
m_Layer: 0
m_Name: MapUnityManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1734618460
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1734618459}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1819238997}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1734618461
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1734618459}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d344126aa8082fa48b7e5f19eff09202, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1748859173
GameObject:
m_ObjectHideFlags: 0
@ -9663,6 +9709,7 @@ Transform:
- {fileID: 514899947}
- {fileID: 1802141879}
- {fileID: 1285317928}
- {fileID: 1734618460}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1824824473

33
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs

@ -7,6 +7,7 @@ using UnityEngine.InputSystem;
using static EnemyNode;
using static UnityEngine.Rendering.DebugUI;
using System;
using Unity.VisualScripting;
public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
@ -57,16 +58,34 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
private void disCardCheck()
{
Dictionary<string, string> trueFunctionVal = new Dictionary<string, string>();
bool canAdv = GameManager.Instance.SyncColourCountUI();
if (canAdv)
{
trueFunctionVal.AddRange(cardEntity.cardOriginalData.AdvantageFunctionVal);
}
else
{
trueFunctionVal.AddRange(cardEntity.cardOriginalData.FunctionVal);
}
int drawCardNum = 0;
for (int i = 0; i < cardEntity.cardOriginalData.Function.Length; i++)
foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
switch (cardEntity.cardOriginalData.Function[i])
switch (kvp.Key)
{
case CardFunction.drawCard:
drawCardNum += int.Parse(cardEntity.cardOriginalData.FunctionVal[i]);
drawCardNum += int.Parse(kvp.Value);
break;
}
}
foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
switch (kvp.Key)
{
case CardFunction.discard:
if (TurnMaster.Instance.handCard.getHandCardList().Count - int.Parse(cardEntity.cardOriginalData.FunctionVal[i]) - 1 + drawCardNum < 0)
if (TurnMaster.Instance.handCard.getHandCardList().Count - int.Parse(kvp.Value) - 1 + drawCardNum < 0)
{
Debug.Log("没有足够的牌可以弃牌");
cardEntity.costEnough = false;
@ -218,6 +237,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent<MapUnity>();
var handlers = new Dictionary<string,EffectRangeHandler>
{
{EffectRange.range1,new EffectRangeHandler1(currentNode,euler) },
{EffectRange.range2,new EffectRangeHandler2(currentNode,euler) },
{EffectRange.range3_1,new EffectRangeHandler3_1(currentNode,euler) },
{EffectRange.range3_2,new EffectRangeHandler3_2(currentNode,euler) },
@ -564,7 +584,12 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
}
cardEntity.influencePreviewPool.Clear();
GetComponent<CanvasGroup>().blocksRaycasts = true;
//ÆäËûλÖö¼¹éλ
transform.SetParent(originalParent);
transform.localPosition = originalpoint;
yield break;
}//范围类,需要指定被影响的节点才能释放
else

525
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEnity_OldSave.cs

@ -1,525 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
public class CardEntity_OldSave : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public CardOriginalData cardOriginalData;
//public CardOriginalData cardData;
public int cardId;
public int CardId
{
get { return cardId; }
set { cardId = value; }
}
// public Vector3 OriginTransform;
//private Vector3 EndTransform;
[Header("拖拽参数")]
public Transform originalParent;
public Vector3 originalpoint;
bool canUse = true;//决定卡牌是否可以释放
bool choosed;//标识卡牌是否被选中
[Header("贝塞尔曲线瞄准")]
public GameObject ainPanle;
[Header("影响格参数")]
public MapUnity currentNode;//瞄准的格子
public List<MapUnity> influencePreviewPool;//卡牌的影响范围
[Header("卡牌拖拽状态")]
public CardDragState dragState;
public enum CardDragState
{
onBeginDrag,
onDrag,
onEndDrag,
noDrag
}
public EventSystem eventSystem;
PointerEventData eventData;
List<RaycastResult> result = new List<RaycastResult>();
public void Start()
{
//cardData = GetComponent<CardOriginalData>();
eventSystem = GameObject.FindObjectOfType<EventSystem>();
eventData = new PointerEventData(eventSystem);
}
private void Update()
{
//右键取消释放
if (choosed && Mouse.current.rightButton.wasPressedThisFrame)
{
Debug.Log("1");
dragState = CardDragState.noDrag;
canUse = false;//取消释放
ainPanle.SetActive(false);
//遍历范围预览池消除影响色
for (int i = 0; i < GameManager.Instance.player.influencePreviewPool.Count; i++)
{
GameManager.Instance.player.influencePreviewPool[i].influenced = false;
}
GameManager.Instance.player.influencePreviewPool.Clear();
//遍历影响池变色
for (int i = 0; i < influencePreviewPool.Count; i++)
{
influencePreviewPool[i].influenced = false;
}
influencePreviewPool.Clear();
//其他位置都归位
transform.SetParent(originalParent);
transform.localPosition = originalpoint;
GetComponent<CanvasGroup>().blocksRaycasts = true;
return;
}
if (dragState != CardDragState.noDrag && dragState != CardDragState.onDrag)
{
//UI射线检测
eventData.position = Mouse.current.position.value;
eventSystem.RaycastAll(eventData, result);
if (result.Count > 0)
{
Debug.Log(result[0].gameObject.name);
}
}
switch (dragState)
{
case CardDragState.onBeginDrag:
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard;
CardChoose(eventData);
dragState = CardDragState.onDrag;
break;
case CardDragState.onDrag:
CardFollow();
if (Mouse.current.leftButton.wasReleasedThisFrame)
{
dragState = CardDragState.onEndDrag;
}
break;
case CardDragState.onEndDrag:
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.none;
CardUse();
break;
case CardDragState.noDrag:
if (Mouse.current.leftButton.wasReleasedThisFrame)
{
eventData.position = Mouse.current.position.value;
eventSystem.RaycastAll(eventData, result);
if (result.Count > 0)
{
Debug.Log(result[0].gameObject.name);
if (result[0].gameObject == this.gameObject)
{
dragState = CardDragState.onBeginDrag;
}
}
}
break;
}
}
public void createCard(int cardId)
{
this.cardId = cardId;
Debug.Log(cardId + "-" + CardOriginalDataList.Instance.cardOriginalDataList[cardId]);
cardOriginalData = CardOriginalDataList.Instance.cardOriginalDataList[cardId];
settleForStart(SettlementManager.settleTurn);
}
//不应该为void,返回值为作用的地块
public void use()
{
settle(0);
}
//卡牌效果的结算
public void settle(int settleTurn)
{
for (int i = 0; i < cardOriginalData.Function.Length; i++)
{
switch (cardOriginalData.Function[i])
{
case CardFunction.cardDamage:
damageWork(int.Parse(cardOriginalData.FunctionVal[i]));
break;
case CardFunction.cardShield:
Usermanager.Instance.Shield = Usermanager.Instance.Shield + int.Parse(cardOriginalData.FunctionVal[i]);
break;
case CardFunction.posion:
case CardFunction.weak:
case CardFunction.coma:
case CardFunction.disarm:
case CardFunction.sleep:
case CardFunction.bleed:
case CardFunction.thorn:
abnormalConditionWork(cardOriginalData.Function[i], int.Parse(cardOriginalData.FunctionVal[i]));
break;
case CardFunction.costRestore:
break;
case CardFunction.dyeing:
Debug.Log("功能是:" + cardOriginalData.Function[1]);
dyeingWork();
break;
}
}
}
public void abnormalConditionWork(string condition, int stackVak)
{
for (int i = 0; i < influencePreviewPool.Count; i++)
{
//施加负面
if (influencePreviewPool[i].enemyNode != null)
{
influencePreviewPool[i].enemyNode.sufferAbnormalCondition(condition, stackVak);
}
}
}
private void damageWork(int damageVal)
{
for (int i = 0; i < influencePreviewPool.Count; i++)
{
//造成伤害
if (influencePreviewPool[i].enemyNode != null)
{
influencePreviewPool[i].enemyNode.sufferDamage(damageVal);
}
}
}
private void dyeingWork()
{
Debug.Log(influencePreviewPool.Count);
for (int i = 0; i < influencePreviewPool.Count; i++)
{
influencePreviewPool[i].whoColour = MapUnity.WhoColour.playerColour;
}
}
private void dyeing()
{
//遍历影响池变色
for (int i = 0; i < influencePreviewPool.Count; i++)
{
influencePreviewPool[i].influenced = true;
influencePreviewPool[i].choossedMark.GetComponent<Renderer>().material = influencePreviewPool[i].yellow;
}
}
//生成卡牌时候遗物的结算
public void settleForStart(int settleTurn)
{
}
//卡牌效果结束之后结算
public void settleForEnd(int settleTurn)
{
}
public void OnBeginDrag(PointerEventData eventData)
{
dragState = CardDragState.onBeginDrag;
}
public void OnDrag(PointerEventData eventData)
{
}
private void ainPanleWork()
{
//射线检测瞄准的地图节点,判断是否可放置和改变放置影响区
Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value);
if (Physics.Raycast(ray, out RaycastHit raycastHit))
{
Debug.Log(raycastHit.collider.gameObject.name);
//检测到跟上次瞄准地方不同,更新
if (currentNode == null || raycastHit.collider.transform.gameObject != currentNode.gameObject)
{
for (int i = 0; i < influencePreviewPool.Count; i++)
{
influencePreviewPool[i].influenced = false;
}
influencePreviewPool.Clear();
currentNode = raycastHit.collider.transform.GetComponent<MapUnity>();
//重新调用范围预览
GameManager.Instance.player.StepPreviewInfluencedNode(cardOriginalData.CastingRange);
Debug.Log(cardOriginalData.CastingRange);
//预览影响范围
if (currentNode.influenced)
{
//根据卡牌属性改变影响池
influencePreviewPool.Add(currentNode);
Vector3 face = currentNode.transform.position - GameManager.Instance.playerOn.transform.position;
float euler = Vector3.SignedAngle(-GameManager.Instance.playerOn.transform.forward, face, GameManager.Instance.playerOn.transform.up) + 180;
Debug.Log(euler);
if (euler > 0 && euler < 45)
{
if (currentNode.unitPool[0] != null)
influencePreviewPool.Add(currentNode.unitPool[0]);
if (currentNode.unitPool[4] != null)
influencePreviewPool.Add(currentNode.unitPool[4]);
}
else if (euler > 45 && euler < 135)
{
if (currentNode.unitPool[1] != null)
influencePreviewPool.Add(currentNode.unitPool[1]);
if (currentNode.unitPool[5] != null)
influencePreviewPool.Add(currentNode.unitPool[5]);
}
else if (euler > 135 && euler < 180)
{
if (currentNode.unitPool[2] != null)
influencePreviewPool.Add(currentNode.unitPool[2]);
if (currentNode.unitPool[0] != null)
influencePreviewPool.Add(currentNode.unitPool[0]);
}
else if (euler > 180 && euler < 225)
{
if (currentNode.unitPool[1] != null)
influencePreviewPool.Add(currentNode.unitPool[1]);
if (currentNode.unitPool[3] != null)
influencePreviewPool.Add(currentNode.unitPool[3]);
}
else if (euler > 225 && euler < 315)
{
if (currentNode.unitPool[2] != null)
influencePreviewPool.Add(currentNode.unitPool[2]);
if (currentNode.unitPool[4] != null)
influencePreviewPool.Add(currentNode.unitPool[4]);
}
else if (euler > 315 && euler < 360)
{
if (currentNode.unitPool[3] != null)
influencePreviewPool.Add(currentNode.unitPool[3]);
if (currentNode.unitPool[5] != null)
influencePreviewPool.Add(currentNode.unitPool[5]);
}
//influencePreviewPool.Add(currentNode);
}
}
}
Debug.Log("结束影响数值" + influencePreviewPool.Count);
}
private void noAinPanleWork(PointerEventData eventData)
{
Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value);
if (eventData.pointerCurrentRaycast.gameObject != null)
{
if (Physics.Raycast(ray, out RaycastHit raycastHit))
{
currentNode = raycastHit.collider.transform.GetComponent<MapUnity>();
influencePreviewPool.Add(currentNode);
}
}
}
public void OnEndDrag(PointerEventData eventData)
{
}
//卡片动作
//开始选中
public void CardChoose(PointerEventData eventData)
{
// if (GameObject.Find("CardPanel") != null)
// graphicRaycaster = GameObject.Find("CardPanel").GetComponent<GraphicRaycaster>();
choosed = true;
GetComponent<CanvasGroup>().blocksRaycasts = false;
originalParent = this.gameObject.transform.parent;
originalpoint = this.transform.localPosition;
transform.SetParent(transform.parent.parent);
transform.position = eventData.position;
//根据卡牌数据决定是否调用曲线
if (cardOriginalData.CastingRange != 0)
{
//释放范围为0则不需要调用曲线
ainPanle.SetActive(true);
}
else
{
ainPanle.SetActive(false);
}
//todo-统一确定锚点位置
//重新调用范围预览--以后要写到卡牌效果里,现在默认影响1格
//GameManager.Instance.player.StepPreviewInfluencedNode(1);
}
//拖拽中
public void CardFollow()
{
if (cardOriginalData.CastingRange != 0)
{
ainPanleWork();
}
else
{
//没有范围不需要射线吧,因为不需要指定目标点?
// noAinPanleWork(eventData);
}
dyeing();
}
//卡牌释放
public void CardUse()
{
choosed = false;
if (canUse)
{
Debug.Log("进入影响数值" + influencePreviewPool.Count);
if (result.Count > 0)
{
if (result[0].gameObject.tag == "Card")
{
choosed = true;
dragState = CardDragState.onDrag;
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard;
/*
GetComponent<CanvasGroup>().blocksRaycasts = true;
ainPanle.SetActive(false);//关闭贝塞尔曲线
//遍历范围预览池消除影响色
for (int i = 0; i < GameManager.Instance.player.influencePreviewPool.Count; i++)
{
GameManager.Instance.player.influencePreviewPool[i].influenced = false;
}
//GameManager.Instance.player.influencePreviewPool.Clear();
*/
return;
}
else if (result[0].gameObject.name == "cardSlot")
{
choosed = true;
dragState = CardDragState.onDrag;
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard;
/*
transform.SetParent(result[0].gameObject.transform);
transform.position = result [0].gameObject.transform.position;
GetComponent<CanvasGroup>().blocksRaycasts = true;
ainPanle.SetActive(false);//关闭贝塞尔曲线
//遍历范围预览池消除影响色
for (int i = 0; i < GameManager.Instance.player.influencePreviewPool.Count; i++)
{
GameManager.Instance.player.influencePreviewPool[i].influenced = false;
}
//GameManager.Instance.player.influencePreviewPool.Clear();
*/
return;
}
}
if (ainPanle.activeSelf)
{
ainPanle.SetActive(false);//关闭贝塞尔曲线
}
//先判断该卡牌的类型是否是需要范围
if (cardOriginalData.CastingRange != 0)
{
//检测碰撞的地图节点是否被影响(可释放)
if (currentNode == null || currentNode.influenced == false)
{
//遍历范围预览池消除影响色(红色,卡牌的释放范围)
for (int i = 0; i < GameManager.Instance.player.influencePreviewPool.Count; i++)
{
GameManager.Instance.player.influencePreviewPool[i].influenced = false;
}
//GameManager.Instance.player.influencePreviewPool.Clear();
}
else if (currentNode.influenced)
{
//卡牌释放效果
use();
Debug.Log("玩家盾量:" + Usermanager.Instance.Shield);
//临时效果--将其加入墓地并销毁实体
TurnMaster.Instance.usedCard.usedCardList.Add(this.gameObject.GetComponent<CardEntity>().CardId);
Destroy(this.gameObject);
}
//遍历范围预览池消除影响色
for (int i = 0; i < GameManager.Instance.player.influencePreviewPool.Count; i++)
{
GameManager.Instance.player.influencePreviewPool[i].influenced = false;
}
GameManager.Instance.player.influencePreviewPool.Clear();
//遍历影响池变色
for (int i = 0; i < influencePreviewPool.Count; i++)
{
influencePreviewPool[i].influenced = false;
}
influencePreviewPool.Clear();
GetComponent<CanvasGroup>().blocksRaycasts = true;
//其他位置都归位
transform.SetParent(originalParent);
transform.localPosition = originalpoint;
return;
}//范围类,需要指定被影响的节点才能释放
else
{
//卡牌释放效果
use();
Debug.Log("玩家盾量:" + Usermanager.Instance.Shield);
//临时效果--将其加入墓地并销毁实体
TurnMaster.Instance.usedCard.usedCardList.Add(this.gameObject.GetComponent<CardEntity>().CardId);
Destroy(this.gameObject);
return;
}//无范围类,直接释放
}
else
{
canUse = true;
}
}
}

37
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs

@ -100,55 +100,64 @@ public class CardEntity : MonoBehaviour
public void createCardDescription()
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < cardOriginalData.Function.Length; i++)
foreach (KeyValuePair<string, string> kvp in cardOriginalData.FunctionVal)
{
switch (cardOriginalData.Function[i])
switch (kvp.Key)
{
case CardFunction.cardDamage:
sb.Append("造成" + cardOriginalData.FunctionVal[i] + "点伤害;");
sb.Append("造成" + kvp.Value + "点伤害;");
break;
case CardFunction.cardShield:
sb.Append("获得" + cardOriginalData.FunctionVal[i] + "点护盾;");
sb.Append("获得" + kvp.Value + "点护盾;");
break;
case CardFunction.posion:
sb.Append("造成" + cardOriginalData.FunctionVal[i] + "层流血;");
sb.Append("施加" + kvp.Value + "层中毒;");
break;
case CardFunction.weak:
sb.Append("造成" + cardOriginalData.FunctionVal[i] + "层虚弱;");
sb.Append("施加" + kvp.Value + "层虚弱;");
break;
case CardFunction.coma:
sb.Append("造成" + cardOriginalData.FunctionVal[i] + "层昏迷;");
sb.Append("施加" + kvp.Value + "层昏迷;");
break;
case CardFunction.disarm:
sb.Append("造成" + cardOriginalData.FunctionVal[i] + "层缴械;");
sb.Append("施加" + kvp.Value + "层缴械;");
break;
case CardFunction.sleep:
sb.Append("造成" + cardOriginalData.FunctionVal[i] + "层睡眠;");
sb.Append("施加" + kvp.Value + "层睡眠;");
break;
case CardFunction.bleed:
sb.Append("造成" + cardOriginalData.FunctionVal[i] + "层流血;");
sb.Append("施加" + kvp.Value + "层流血;");
break;
case CardFunction.thorn:
sb.Append("获得" + cardOriginalData.FunctionVal[i] + "层荆棘;");
sb.Append("获得" + kvp.Value + "层荆棘;");
break;
case CardFunction.costRestore:
sb.Append("获得" + cardOriginalData.FunctionVal[i] + "点费用;");
sb.Append("获得" + kvp.Value + "点能量;");
break;
case CardFunction.drawCard:
sb.Append("抽" + cardOriginalData.FunctionVal[i] + "张牌;");
sb.Append("抽" + kvp.Value + "张牌;");
break;
case CardFunction.discard:
sb.Append("弃" + cardOriginalData.FunctionVal[i] + "张牌;");
sb.Append("弃" + kvp.Value + "张牌;");
break;
case CardFunction.nodeDiffDamage:
sb.Append("造成场地差伤害;");
break;
case CardFunction.dyeing:
sb.Append("染色;");
break;
}
}
if (cardOriginalData.IsDisposable)
{
sb.Append("消耗;");
}
if (cardOriginalData.AdvantageDescription.Length!=0)
{
Debug.Log("优势:" + cardOriginalData.AdvantageDescription + ";");
sb.Append("优势:"+cardOriginalData.AdvantageDescription+";");
}
if (sb.Length > 0)
{
sb.Remove(sb.Length - 1, 1); // 删除最后一个字符

33
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalData.cs

@ -13,9 +13,7 @@ public class CardOriginalData : System.Object
private int rarity;
private string[] function;
private string[] functionVal;
private Dictionary<string, string> functionVal;
private int castingRange;
@ -23,9 +21,7 @@ public class CardOriginalData : System.Object
private int isDisposable;
private string[] advantageFunction;
private string[] advantageFunctionVal;
private Dictionary<string, string> advantageFunctionVal;
private int carType;
@ -33,6 +29,8 @@ public class CardOriginalData : System.Object
private string imgPath;
private string advantageDescription;
public int CardId
{
get { return cardId; }
@ -58,13 +56,7 @@ public class CardOriginalData : System.Object
set { rarity = value; }
}
public string[] Function
{
get { return function; }
set { function = value; }
}
public string[] FunctionVal
public Dictionary<string, string> FunctionVal
{
get { return functionVal; }
set { functionVal = value; }
@ -88,13 +80,7 @@ public class CardOriginalData : System.Object
set { isDisposable = value ? 1 : 0; }
}
public string[] AdvantageFunction
{
get { return advantageFunction; }
set { advantageFunction = value; }
}
public string[] AdvantageFunctionVal
public Dictionary<string, string> AdvantageFunctionVal
{
get { return advantageFunctionVal; }
set { advantageFunctionVal = value; }
@ -117,4 +103,11 @@ public class CardOriginalData : System.Object
get { return imgPath; }
set { imgPath = value; }
}
public string AdvantageDescription
{
get { return advantageDescription; }
set { advantageDescription = value; }
}
}

27
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs

@ -50,16 +50,33 @@ public class CardOriginalDataList : Singleton<CardOriginalDataList>
cardOriginalData.ChineseName = values[1];
cardOriginalData.Cost = int.Parse(values[2]);
cardOriginalData.Rarity = int.Parse(values[3]);
cardOriginalData.Function = values[4].Split(";");
cardOriginalData.FunctionVal = values[5].Split(";");
cardOriginalData.CastingRange = int.Parse(values[6]);
cardOriginalData.EffectRange = values[7];
cardOriginalData.IsDisposable = int.Parse(values[8]) == 1;
cardOriginalData.AdvantageFunction = values[9].Split(";");
cardOriginalData.AdvantageFunctionVal = values[10].Split(";");
cardOriginalData.CarType = int.Parse(values[11]);
cardOriginalData.Description = values[12];
cardOriginalData.AdvantageDescription = values[12];
cardOriginalData.ImgPath = values[13];
getDictionaryFromString(values, cardOriginalData);
return cardOriginalData;
}
private void getDictionaryFromString(string[] values, CardOriginalData cardOriginalData)
{
Debug.Log("¿¨ÅÆÊÇ:"+cardOriginalData.ChineseName);
string[] function = values[4].Split(";");
string[] functionVal = values[5].Split(";");
string[] advantagefunction = values[9].Split(";");
string[] advantagefunctionVal = values[10].Split(";");
cardOriginalData.FunctionVal = new Dictionary<string, string>();
cardOriginalData.AdvantageFunctionVal = new Dictionary<string, string>();
Dictionary<string, string> functionDictionary = new Dictionary<string, string>();
for (int i = 0; i < function.Length; i++)
{
cardOriginalData.FunctionVal.Add(function[i], functionVal[i]);
}
for (int i = 0; i < advantagefunction.Length; i++)
{
cardOriginalData.AdvantageFunctionVal.Add(advantagefunction[i], advantagefunctionVal[i]);
}
}
}

5
ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs

@ -47,7 +47,7 @@ public class TurnMaster : Singleton<TurnMaster>
{
//恢复体力
GameManager.Instance.playerState.currentStepRange = GameManager.Instance.playerState.maxStepRange;
restoreCost(0);
restoreResource(0);
//洗牌--抽卡
StartCoroutine(ShuffleWithLosingCards());
@ -102,10 +102,11 @@ public class TurnMaster : Singleton<TurnMaster>
}
//老吊写的函数
public void restoreCost(int settleTurn)
public void restoreResource(int settleTurn)
{
totalCost = Usermanager.Instance.totalCost;
currentCost = totalCost;
Usermanager.Instance.Shield = 0;
}
IEnumerator ShuffleWithLosingCards()
{

25
ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs

@ -107,6 +107,31 @@ public class GameManager : Singleton<GameManager>
return result;
}
public int getNodeDiff()
{
int playerCount = 0;
int enemyCount = 0;
int totalCount = 0;
for (int i = 0; i < X.Count; i++)
{
for (int j = 0; j < X[i].Y.Count; j++)
{
if (X[i].Y[j].whoColour == MapUnity.WhoColour.playerColour)
{
playerCount += 1;
}
else if (X[i].Y[j].whoColour == MapUnity.WhoColour.enemyColour)
{
enemyCount += 1;
}
totalCount += 1;
}
}
return playerCount-enemyCount;
}
//羲擁部華芨伎
public void StartMapColour()
{

51
ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler1.cs

@ -0,0 +1,51 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EffectRangeHandler1 : EffectRangeHandlerBase
{
public EffectRangeHandler1(MapUnity currentNode, float euler)
{
influencePreviewPool.Clear();
influencePreviewPool.Add(currentNode);
angleActions = new Dictionary<float, Func<List<MapUnity>>>
{
{ 30.0f, () =>
{
return influencePreviewPool;
}
},
{ 90.0f, () =>
{
return influencePreviewPool;
}
},
{ 150.0f, () =>
{
return influencePreviewPool;
}
},
{ 210.0f, () =>
{
return influencePreviewPool;
}
},
{ 270.0f, () =>
{
return influencePreviewPool;
}
},
{ 330.0f, () =>
{
return influencePreviewPool;
}
}
};
}
}

2
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEnity_OldSave.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler1.cs.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7831439f6bbbdf14b8546fd1ac26d312
guid: 00c6f2acf33d3594aa85dff634c0b326
MonoImporter:
externalObjects: {}
serializedVersion: 2

6
ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandlerBase.cs

@ -18,10 +18,12 @@ public class EffectRangeHandlerBase : EffectRangeHandler
canPass = false;
return canPass;
}
if (currentNode.TryGetComponent<EnemyNode>(out EnemyNode enemyNode))
Debug.Log("currentNode"+ currentNode.enemyNode);
/*if (currentNode.TryGetComponent<EnemyNode>(out EnemyNode enemyNode))*/
if (currentNode.enemyNode!=null)
{
Debug.Log("JJKK");
if (enemyNode.enemyType == EnemyNode.EnemyType.block)
if (currentNode.enemyNode.enemyType.Equals(EnemyNode.EnemyType.block))
{
Debug.Log("AABB");
canPass = false;

2
ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs

@ -157,4 +157,6 @@ public class MapUnity : MonoBehaviour
{
compalte = true;
}
}

14
ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs

@ -33,9 +33,17 @@ public class Player : MonoBehaviour
Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value);
if (Physics.Raycast(ray, out RaycastHit raycastHit,500,playerLayerMask.value) && raycastHit.collider.gameObject.tag == "Player")
{
Debug.Log(raycastHit.collider.gameObject.name);
StepPreviewInfluencedNode(GameManager.Instance.playerState.currentStepRange);
}
Debug.Log(raycastHit.collider.gameObject.name);
MapUnityManager mapUnityManager = new MapUnityManager();
influencePreviewPool.AddRange(mapUnityManager.findReachableTiles(GameManager.Instance.playerOn, GameManager.Instance.playerState.currentStepRange));
//±éÀúÓ°Ïì³Ø±äÉ«
for (int i = 0; i < influencePreviewPool.Count; i++)
{
influencePreviewPool[i].influenced = true;
influencePreviewPool[i].choossedMark.GetComponent<Renderer>().material = influencePreviewPool[i].red;
}
//StepPreviewInfluencedNode(GameManager.Instance.playerState.currentStepRange);
}
else
{
// Debug.Log(raycastHit.collider.gameObject.name);

2
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs

@ -32,6 +32,8 @@ public class CardFunction
public const string discard = "13";
//Ⱦɫ
public const string dyeing = "14";
//造成场地差伤害
public const string nodeDiffDamage = "15";
}

6
ColorlessWorld-2024-4-2/Assets/Scripts/manager/GameRoundManager.cs

@ -17,7 +17,7 @@ public class GameRoundManager : Singleton<GameRoundManager>
public void init()
{
List<int> newCardDeck = new List<int>();
/* List<int> newCardDeck = new List<int>();
//初始卡组先加10个打击
for (int i = 0; i < 10; i++)
{
@ -25,10 +25,10 @@ public class GameRoundManager : Singleton<GameRoundManager>
}
List<RelicsEntity> newRelicsList = new List<RelicsEntity>();
Usermanager newUser= new Usermanager(50);
//Usermanager newUser= new Usermanager(50);
this.cardDeck = newCardDeck;
this.relicsList = newRelicsList;
this.usermanager = newUser;
this.usermanager = newUser;*/
}
public void Start()

41
ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs

@ -0,0 +1,41 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MapUnityManager : MonoBehaviour
{
public List<MapUnity> findReachableTiles(MapUnity startNode, int movePoints)
{
List<MapUnity> reachableNodes = new List<MapUnity>();
Queue<MapUnity> queue = new Queue<MapUnity>();
Dictionary<MapUnity, int> remainingMovePoints = new Dictionary<MapUnity, int>();
queue.Enqueue(startNode);
remainingMovePoints[startNode] = movePoints;
while (queue.Count > 0)
{
MapUnity currentNode = queue.Dequeue();
int currentMovePoints = remainingMovePoints[currentNode];
foreach (MapUnity neighbor in currentNode.unitPool)
{
if (neighbor == null || neighbor.blocked || remainingMovePoints.ContainsKey(neighbor))
continue;
int newMovePoints = currentMovePoints - 1; // 每移动一格,减少一点移动点数
if (newMovePoints >= 0)
{
queue.Enqueue(neighbor);
remainingMovePoints[neighbor] = newMovePoints;
reachableNodes.Add(neighbor);
}
}
}
//遍历影响池变色
return reachableNodes;
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs.meta

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

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

@ -1,5 +1,6 @@
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class SettlementManager : Singleton<SettlementManager>
@ -8,130 +9,117 @@ public class SettlementManager : Singleton<SettlementManager>
public static int settleTurn;
public void abnormalConditionWork(string condition, int stackVak, List<MapUnity> influencePreviewPool)
{
for (int i = 0; i < influencePreviewPool.Count; i++)
{
//施加负面
if (influencePreviewPool[i].enemyNode != null)
{
influencePreviewPool[i].enemyNode.sufferAbnormalCondition(condition, stackVak);
}
}
}
//造成伤害
//染色
private void dyeingWork(List<MapUnity> influencePreviewPool)
{
for (int i = 0; i < influencePreviewPool.Count; i++)
{
influencePreviewPool[i].whoColour = MapUnity.WhoColour.playerColour;
}
}
private void damageWork(int damageVal, List<MapUnity> influencePreviewPool)
{
for (int i = 0; i < influencePreviewPool.Count; i++)
{
//造成伤害
if (influencePreviewPool[i].enemyNode != null)
{
influencePreviewPool[i].enemyNode.sufferDamage(damageVal);
}
}
}
public IEnumerator settle(CardOriginalData cardOriginalData, List<MapUnity> influencePreviewPool, int cardIndex)
{
Dictionary<string, string> trueFunctionVal=new Dictionary<string, string>();
bool canAdv = GameManager.Instance.SyncColourCountUI();
for (int i = 0; i < cardOriginalData.Function.Length; i++)
if (canAdv)
{
trueFunctionVal.AddRange(cardOriginalData.AdvantageFunctionVal);
}
else
{
switch (cardOriginalData.Function[i])
trueFunctionVal.AddRange(cardOriginalData.FunctionVal);
}
foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
switch (kvp.Key)
{
case CardFunction.cardDamage:
damageWork(int.Parse(cardOriginalData.FunctionVal[i]), influencePreviewPool);
damageWork(int.Parse(kvp.Value), influencePreviewPool);
break;
case CardFunction.nodeDiffDamage:
if (GameManager.Instance.getNodeDiff()>0)
{
damageWork(GameManager.Instance.getNodeDiff(), influencePreviewPool);
}
break;
case CardFunction.cardShield:
Usermanager.Instance.Shield = Usermanager.Instance.Shield + int.Parse(cardOriginalData.FunctionVal[i]);
Usermanager.Instance.Shield = Usermanager.Instance.Shield + int.Parse(kvp.Value);
break;
case CardFunction.posion:
case CardFunction.weak:
case CardFunction.coma:
case CardFunction.disarm:
case CardFunction.sleep:
case CardFunction.bleed:
case CardFunction.thorn:
abnormalConditionWork(cardOriginalData.Function[i], int.Parse(cardOriginalData.FunctionVal[i]), influencePreviewPool);
abnormalConditionWork(kvp.Value, int.Parse(kvp.Value), influencePreviewPool);
break;
case CardFunction.costRestore:
TurnMaster.Instance.currentCost += int.Parse(cardOriginalData.FunctionVal[i]);
TurnMaster.Instance.currentCost += int.Parse(kvp.Value);
break;
case CardFunction.dyeing:
dyeingWork(influencePreviewPool);
break;
case CardFunction.discard:
yield return StartCoroutine(TurnMaster.Instance.randomDiscard(int.Parse(cardOriginalData.FunctionVal[i])));
yield return StartCoroutine(TurnMaster.Instance.randomDiscard(int.Parse(kvp.Value)));
yield return StartCoroutine(TurnMaster.Instance.MoveCards());
/*yield return new WaitForEndOfFrame();
StartCoroutine(TurnMaster.Instance.MoveCards());*/
break;
case CardFunction.drawCard:
TurnMaster.Instance.drawCards(int.Parse(cardOriginalData.FunctionVal[i]));
yield return StartCoroutine(TurnMaster.Instance.MoveCards());
break;
}
//yield return StartCoroutine(TurnMaster.Instance.MoveCards());
}
//优势
if (canAdv)
//流血不能先结算
foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
for (int i = 0; i < cardOriginalData.AdvantageFunction.Length; i++)
switch (kvp.Key)
{
switch (cardOriginalData.AdvantageFunction[i])
{
case CardFunction.cardDamage:
damageWork(int.Parse(cardOriginalData.AdvantageFunctionVal[i]), influencePreviewPool);
break;
case CardFunction.cardShield:
Usermanager.Instance.Shield = Usermanager.Instance.Shield + int.Parse(cardOriginalData.AdvantageFunctionVal[i]);
break;
case CardFunction.posion:
case CardFunction.weak:
case CardFunction.coma:
case CardFunction.disarm:
case CardFunction.sleep:
case CardFunction.bleed:
case CardFunction.thorn:
abnormalConditionWork(cardOriginalData.AdvantageFunction[i], int.Parse(cardOriginalData.AdvantageFunctionVal[i]), influencePreviewPool);
break;
case CardFunction.costRestore:
TurnMaster.Instance.currentCost += int.Parse(cardOriginalData.AdvantageFunctionVal[i]);
break;
case CardFunction.dyeing:
dyeingWork(influencePreviewPool);
break;
case CardFunction.discard:
yield return StartCoroutine(TurnMaster.Instance.randomDiscard(int.Parse(cardOriginalData.AdvantageFunctionVal[i])));
yield return StartCoroutine(TurnMaster.Instance.MoveCards());
break;
case CardFunction.drawCard:
TurnMaster.Instance.drawCards(int.Parse(cardOriginalData.AdvantageFunctionVal[i]));
yield return StartCoroutine(TurnMaster.Instance.MoveCards());
break;
}
case CardFunction.bleed:
abnormalConditionWork(kvp.Value, int.Parse(kvp.Value), influencePreviewPool);
break;
}
TurnMaster.Instance.currentCost -= cardOriginalData.Cost;
}
Debug.Log("护盾量:" + Usermanager.Instance.Shield);
}
public void abnormalConditionWork(string condition, int stackVak, List<MapUnity> influencePreviewPool)
{
for (int i = 0; i < influencePreviewPool.Count; i++)
//弃牌不能先结算
foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
//施加负面
if (influencePreviewPool[i].enemyNode != null)
switch (kvp.Key)
{
influencePreviewPool[i].enemyNode.sufferAbnormalCondition(condition, stackVak);
}
}
}
//造成伤害
case CardFunction.drawCard:
TurnMaster.Instance.drawCards(int.Parse(kvp.Value));
yield return StartCoroutine(TurnMaster.Instance.MoveCards());
break;
//染色
private void dyeingWork(List<MapUnity> influencePreviewPool)
{
for (int i = 0; i < influencePreviewPool.Count; i++)
{
influencePreviewPool[i].whoColour = MapUnity.WhoColour.playerColour;
}
}
private void damageWork(int damageVal, List<MapUnity> influencePreviewPool)
{
for (int i = 0; i < influencePreviewPool.Count; i++)
{
//造成伤害
if (influencePreviewPool[i].enemyNode != null)
{
influencePreviewPool[i].enemyNode.sufferDamage(damageVal);
}
}
}
}
}

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

@ -4,8 +4,8 @@ using UnityEngine;
public class Usermanager : Singleton<Usermanager>
{
private int health;
private int shield;
public int health;
public int shield;
public int totalCost;
public int Health { get => health; set => health = value; }
@ -22,6 +22,6 @@ public class Usermanager : Singleton<Usermanager>
{
health = 100;
Shield = 0;
totalCost = 1;
totalCost = 4;
}
}

18
ColorlessWorld-2024-4-2/Assets/data/card_data.csv

@ -1,3 +1,15 @@
ID,名称,费用,稀有度,功能,数值,施法范围,作用范围,消耗,优势功能,数值,卡牌类型,文本描述,图片路径
10001,打击,0,1,1;14,1;0,2,6_1,0,2,100,1,,PlayerIcon
10002,治疗,2,2,1,2,0,0,0,0,0,1,,
ID,名称,费用,稀有度,功能,数值,施法范围,作用范围,消耗,优势功能,数值,卡牌类型,优势描述,图片路径
10001,射击,1,1,1,7,1,1,0,1,7,1,,PlayerIcon
10002,护盾,1,1,2,5,0,1,0,2,5,1,,PlayerIcon
10003,毒药,1,1,4,6,3,1,0,4,10,1,施加4层中毒,PlayerIcon
10004,枫叶炸弹,2,2,9,2,1,7_2,0,9;4,2;4,1,施加4层中毒,PlayerIcon
10005,花粉,0,2,8,1,4,1,0,8,2,1,施加1层沉睡,PlayerIcon
10006,致残,2,1,7,2,2,1,0,7;9,2;2,1,施加2层流血,PlayerIcon
10007,滋养,1,2,12;13,3;1,0,0,0,12,3,1,无需丢弃,PlayerIcon
10008,草山压顶,3,3,1;6,10;1,2,1,0,1;6,13;1,1,造成3点伤害,PlayerIcon
10009,尖刺甲,1,1,2;10,3;4,0,0,0,2;10,3;6,1,获得3层荆棘,PlayerIcon
10010,活力,0,2,11,1,0,0,1,11,2,1,获得1点能量,PlayerIcon
10011,草团,2,1,1;14,5;0,1,6_2,1,1;14,8;0,1,造成3点伤害,PlayerIcon
10012,穿刺射击,2,1,1,8,1,5_1,0,1;4,8;4,1,施加4层中毒,PlayerIcon
10013,森林之怒,3,3,1,20,3,1,0,1;15,20;0,1,造成场地差伤害,PlayerIcon
10014,巨树之弓,2,1,1;14,13;0,1,5_3,0,1;14;5,13;0;1,1,施加1层虚弱,PlayerIcon

1 ID 名称 费用 稀有度 功能 数值 施法范围 作用范围 消耗 优势功能 数值 卡牌类型 文本描述 优势描述 图片路径
2 10001 打击 射击 0 1 1 1;14 1 1;0 7 2 1 6_1 1 0 2 1 100 7 1 PlayerIcon
3 10002 治疗 护盾 2 1 2 1 1 2 2 5 0 0 1 0 0 2 0 5 1 PlayerIcon
4 10003 毒药 1 1 4 6 3 1 0 4 10 1 施加4层中毒 PlayerIcon
5 10004 枫叶炸弹 2 2 9 2 1 7_2 0 9;4 2;4 1 施加4层中毒 PlayerIcon
6 10005 花粉 0 2 8 1 4 1 0 8 2 1 施加1层沉睡 PlayerIcon
7 10006 致残 2 1 7 2 2 1 0 7;9 2;2 1 施加2层流血 PlayerIcon
8 10007 滋养 1 2 12;13 3;1 0 0 0 12 3 1 无需丢弃 PlayerIcon
9 10008 草山压顶 3 3 1;6 10;1 2 1 0 1;6 13;1 1 造成3点伤害 PlayerIcon
10 10009 尖刺甲 1 1 2;10 3;4 0 0 0 2;10 3;6 1 获得3层荆棘 PlayerIcon
11 10010 活力 0 2 11 1 0 0 1 11 2 1 获得1点能量 PlayerIcon
12 10011 草团 2 1 1;14 5;0 1 6_2 1 1;14 8;0 1 造成3点伤害 PlayerIcon
13 10012 穿刺射击 2 1 1 8 1 5_1 0 1;4 8;4 1 施加4层中毒 PlayerIcon
14 10013 森林之怒 3 3 1 20 3 1 0 1;15 20;0 1 造成场地差伤害 PlayerIcon
15 10014 巨树之弓 2 1 1;14 13;0 1 5_3 0 1;14;5 13;0;1 1 施加1层虚弱 PlayerIcon

136
ColorlessWorld-2024-4-2/UserSettings/Layouts/default-2022.dwlt

@ -119,7 +119,7 @@ MonoBehaviour:
m_MinSize: {x: 300, y: 100}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 98
controlID: 96
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
@ -139,12 +139,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1948
width: 2088
height: 1299
m_MinSize: {x: 200, y: 100}
m_MaxSize: {x: 16192, y: 16192}
vertical: 1
controlID: 53
controlID: 51
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
@ -164,12 +164,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1948
height: 823
width: 2088
height: 820
m_MinSize: {x: 200, y: 50}
m_MaxSize: {x: 16192, y: 8096}
vertical: 0
controlID: 54
controlID: 52
--- !u!114 &8
MonoBehaviour:
m_ObjectHideFlags: 52
@ -187,8 +187,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 649
height: 823
width: 697
height: 820
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 13}
@ -211,10 +211,10 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 649
x: 697
y: 0
width: 1299
height: 823
width: 1391
height: 820
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 14}
@ -233,23 +233,23 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: ConsoleWindow
m_Name: ProjectBrowser
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 823
width: 1948
height: 476
m_MinSize: {x: 101, y: 121}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 12}
y: 820
width: 2088
height: 479
m_MinSize: {x: 231, y: 271}
m_MaxSize: {x: 10001, y: 10021}
m_ActualView: {fileID: 16}
m_Panes:
- {fileID: 16}
- {fileID: 12}
m_Selected: 1
m_LastSelected: 0
m_Selected: 0
m_LastSelected: 1
--- !u!114 &11
MonoBehaviour:
m_ObjectHideFlags: 52
@ -265,9 +265,9 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 1948
x: 2088
y: 0
width: 612
width: 472
height: 1299
m_MinSize: {x: 276, y: 71}
m_MaxSize: {x: 4001, y: 4021}
@ -298,9 +298,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 0
y: 896
width: 1947
height: 455
y: 893
width: 2087
height: 458
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -334,8 +334,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 73
width: 648
height: 802
width: 696
height: 799
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -349,9 +349,9 @@ MonoBehaviour:
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 2afbffffc86c0000
m_SelectedIDs: 6a6e0000
m_LastClickedID: 28266
m_ExpandedIDs: 2afbffffca6c0000066e0000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -396,10 +396,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 649
x: 697
y: 73
width: 1297
height: 802
width: 1389
height: 799
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -719,9 +719,9 @@ MonoBehaviour:
m_PlayAudio: 0
m_AudioPlay: 0
m_Position:
m_Target: {x: 0, y: 0, z: 0}
m_Target: {x: 0.006319668, y: 0.58954334, z: 1.2597547}
speed: 2
m_Value: {x: 0, y: 0, z: 0}
m_Value: {x: 0.006319668, y: 0.58954334, z: 1.2597547}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
@ -767,13 +767,13 @@ MonoBehaviour:
m_GridAxis: 1
m_gridOpacity: 0.5
m_Rotation:
m_Target: {x: 0.58584136, y: 0.0018278909, z: -0.0016127827, w: 0.81064034}
m_Target: {x: 0.48589787, y: 0.0020022085, z: -0.0013914306, w: 0.87421644}
speed: 2
m_Value: {x: 0.58573776, y: 0.0018275676, z: -0.0016124975, w: 0.8104969}
m_Value: {x: 0.48581117, y: 0.0020018513, z: -0.0013911823, w: 0.87406045}
m_Size:
m_Target: 2.69248
m_Target: 4.1813393
speed: 2
m_Value: 2.69248
m_Value: 4.1813393
m_Ortho:
m_Target: 0
speed: 2
@ -819,10 +819,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 649
x: 697
y: 73
width: 1297
height: 802
width: 1389
height: 799
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -875,23 +875,23 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 21
width: 1297
height: 781
m_Scale: {x: 0.67552084, y: 0.67552084}
m_Translation: {x: 648.5, y: 390.49997}
width: 1389
height: 778
m_Scale: {x: 0.7360305, y: 0.73603034}
m_Translation: {x: 694.5, y: 389}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -960
y: -578.07245
width: 1920
height: 1156.1449
x: -943.575
y: -528.5108
width: 1887.15
height: 1057.0216
m_MinimalGUI: 1
m_defaultScale: 0.67552084
m_LastWindowPixelSize: {x: 1297, y: 802}
m_defaultScale: 0.72037035
m_LastWindowPixelSize: {x: 1389, y: 799}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000000000000000000
@ -919,9 +919,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 0
y: 896
width: 1947
height: 455
y: 893
width: 2087
height: 458
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -957,10 +957,10 @@ MonoBehaviour:
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: fc870000
m_LastClickedID: 34812
m_ExpandedIDs: 00000000a4710000a6710000a87100001e88000000ca9a3b
scrollPos: {x: 0, y: 62}
m_SelectedIDs: 3e780000
m_LastClickedID: 30782
m_ExpandedIDs: 00000000aa710000ac710000ae710000b0710000b271000000ca9a3b
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -988,7 +988,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 00000000a4710000a6710000a8710000aa710000ac710000
m_ExpandedIDs: 00000000aa710000ac710000ae710000b0710000b2710000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1013,24 +1013,24 @@ MonoBehaviour:
m_Icon: {fileID: 0}
m_ResourceFile:
m_ListAreaState:
m_SelectedInstanceIDs: 20880000
m_LastClickedInstanceID: 34848
m_SelectedInstanceIDs:
m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 0
m_ExpandedInstanceIDs: c6230000f06f00003a7b000058cc00005ecc00006ed400004e6e000000000000e07200000a7000000e70000002810000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_Name: Usermanager
m_OriginalName: Usermanager
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_UserData: 6744
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_OriginalEventType: 0
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 10}
m_CreateAssetUtility:
@ -1065,9 +1065,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 1948
x: 2088
y: 73
width: 611
width: 471
height: 1278
m_SerializedDataModeController:
m_DataMode: 0

Loading…
Cancel
Save