Browse Source

卡牌发动判断,锻造系统优化

pull/81/head
软件204张景程 11 months ago
parent
commit
8a80ecb2b1
  1. 2
      ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset
  2. 2
      ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset
  3. 10
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/Card_v04-Common.prefab
  4. 2
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  5. 30
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs
  6. 6
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs
  7. 8
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs
  8. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs
  9. 6
      ColorlessWorld-2024-4-2/Assets/Scripts/ForgingPoint/ForgintPointManager.cs
  10. 13
      ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs
  11. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/PlayerManager/PlayerStatsManager.cs
  12. 42
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs

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

@ -16,7 +16,7 @@ MonoBehaviour:
maxStepRange: 2 maxStepRange: 2
currentStepRange: 2 currentStepRange: 2
maxCost: 3 maxCost: 3
currentCost: 3 currentCost: 1
maxShieldValue: 0 maxShieldValue: 0
currentShieldValue: 0 currentShieldValue: 0
maxHP: 68 maxHP: 68

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

@ -18,4 +18,4 @@ MonoBehaviour:
- 1004 - 1004
- 1004 - 1004
- 1004 - 1004
- 10041 - 2001

10
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/Card_v04-Common.prefab

@ -235,7 +235,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 1
m_OnCullStateChanged: m_OnCullStateChanged:
@ -379,7 +379,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 1
m_OnCullStateChanged: m_OnCullStateChanged:
@ -454,7 +454,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 1
m_OnCullStateChanged: m_OnCullStateChanged:
@ -598,6 +598,7 @@ MonoBehaviour:
type: 3} type: 3}
noSmallCard: 0 noSmallCard: 0
noSyncText: 0 noSyncText: 0
isLookCard: 0
conditionList: conditionList:
- {fileID: 4398690247767463098} - {fileID: 4398690247767463098}
- {fileID: 5970626616650445913} - {fileID: 5970626616650445913}
@ -613,6 +614,7 @@ MonoBehaviour:
type: 3} type: 3}
cardDataSummary: {fileID: 688789690455570313} cardDataSummary: {fileID: 688789690455570313}
animator: {fileID: 5188661188061946492} animator: {fileID: 5188661188061946492}
borderAnim: {fileID: 4731515924597847675}
--- !u!114 &5545682449418996990 --- !u!114 &5545682449418996990
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1479,7 +1481,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 1
m_OnCullStateChanged: m_OnCullStateChanged:

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

@ -21239,7 +21239,7 @@ AudioSource:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 992566368} m_GameObject: {fileID: 992566368}
m_Enabled: 1 m_Enabled: 0
serializedVersion: 4 serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0} OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 8300000, guid: f44b5427b062799468a1894cf3c8a8bf, type: 3} m_audioClip: {fileID: 8300000, guid: f44b5427b062799468a1894cf3c8a8bf, type: 3}

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

@ -75,6 +75,8 @@ public class CardEntity : MonoBehaviour
public bool noSmallCard=false; public bool noSmallCard=false;
//不同步数值(手动禁止数值同步) //不同步数值(手动禁止数值同步)
public bool noSyncText = false; public bool noSyncText = false;
[Header("标识是ui卡还是使用卡")]
public bool isLookCard = false;
[Header("条件数组")] [Header("条件数组")]
public GameObject[] conditionList; public GameObject[] conditionList;
[Header("生效功能框")] [Header("生效功能框")]
@ -93,10 +95,18 @@ public class CardEntity : MonoBehaviour
public GameObject cardDataSummary; public GameObject cardDataSummary;
[Header("卡牌销毁动画器")] [Header("卡牌销毁动画器")]
public Animator animator; public Animator animator;
[Header("卡牌边框画器控件")]
public Animator borderAnim;
public Dictionary<string, Tuple<string, string>> cardFunToLose = new Dictionary<string, Tuple<string, string>>(); public Dictionary<string, Tuple<string, string>> cardFunToLose = new Dictionary<string, Tuple<string, string>>();
private void Start() private void Start()
{ {
//注册到费用变化接口--移除在变小卡那里
if ( isLookCard ==false && GameManager.Instance != null)
{
GameManager.Instance.costChange += CheckUse;
}
StartCoroutine(SyncVuleText()); StartCoroutine(SyncVuleText());
} }
@ -124,6 +134,19 @@ public class CardEntity : MonoBehaviour
} }
//检查是否可以发动,配合发光边框
public void CheckUse()
{
if(PlayerStatsManager .Instance .playerState .currentCost >= cardOriginalData .Cost )
{
borderAnim.gameObject.SetActive(true);
}
else
{
borderAnim.gameObject.SetActive(false);
}
}
public void createCard(string cardId, int cardIndex,bool needTrueFun) public void createCard(string cardId, int cardIndex,bool needTrueFun)
{ {
Debug.Log("创建ID" + cardId + "needTrueFun是" + needTrueFun); Debug.Log("创建ID" + cardId + "needTrueFun是" + needTrueFun);
@ -255,6 +278,11 @@ public class CardEntity : MonoBehaviour
} }
public IEnumerator MoveCardToDestory() public IEnumerator MoveCardToDestory()
{ {
//移除检查费用变化接口
if (isLookCard == false && GameManager.Instance != null)
{
GameManager.Instance.costChange -= CheckUse;
}
//卡牌音效 //卡牌音效
AudioManager.Instance.DrawCardVoicePlayer(1); AudioManager.Instance.DrawCardVoicePlayer(1);
//销毁动画 //销毁动画

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

@ -371,9 +371,11 @@ public class TurnMaster : Singleton<TurnMaster>
} }
IEnumerator Discard(List <string> cardIndex) IEnumerator Discard(List <string> cardIndex)
{ {
for (int j = cardIndex.Count - 1; j > -1; j--) int count = cardIndex.Count;
// for (int j = cardIndex.Count - 1; j > -1; j--)
for (int j = 0; j <count ; j++)
{ {
disCard(j); disCard(0);
//³é¿¨ÉùÒô //³é¿¨ÉùÒô
AudioManager.Instance.DrawCardVoicePlayer(1); AudioManager.Instance.DrawCardVoicePlayer(1);
yield return new WaitForSeconds(0.13f); yield return new WaitForSeconds(0.13f);

8
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs

@ -26,9 +26,11 @@ public class Boom : BlockNode
{ {
//计算角度 //计算角度
MapUnity currentNode = getNodeTools.LocationToGetNode(positionX,positionY); MapUnity currentNode = getNodeTools.LocationToGetNode(positionX,positionY);
CAngle(currentNode); yield return StartCoroutine(CAngle(currentNode));
currentNode.blocked = false; currentNode.blocked = false;
currentNode.enemyNode = null; currentNode.enemyNode = null;
//˝áËăĐýÎĐ
GameManager.Instance.BroadCastWhirlpoolEffectSycn();
//生成爆炸特效并摧毁此物体 //生成爆炸特效并摧毁此物体
Instantiate(destroyParticle, transform.position, destroyParticle.transform.rotation); Instantiate(destroyParticle, transform.position, destroyParticle.transform.rotation);
yield return null; yield return null;
@ -84,7 +86,7 @@ public class Boom : BlockNode
} }
return effectRangePreviewPool; return effectRangePreviewPool;
} }
public void CAngle(MapUnity currentNode) IEnumerator CAngle(MapUnity currentNode)
{ {
List<MapUnity> effectRangePreviewPool = new List<MapUnity>(); List<MapUnity> effectRangePreviewPool = new List<MapUnity>();
@ -137,5 +139,7 @@ public class Boom : BlockNode
} }
} }
yield return null;
} }
} }

4
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs

@ -32,7 +32,9 @@ public class TNTBucket : BlockNode
} }
mapUnity.blocked = false; mapUnity.blocked = false;
mapUnity.enemyNode = null; mapUnity.enemyNode = null;
//½áËãÐýÎÐ
yield return null;
GameManager.Instance.BroadCastWhirlpoolEffectSycn();
//生成爆炸特效并摧毁此物体 //生成爆炸特效并摧毁此物体
Instantiate(destroyParticle, transform.position, destroyParticle.transform.rotation); Instantiate(destroyParticle, transform.position, destroyParticle.transform.rotation);
yield return null; yield return null;

6
ColorlessWorld-2024-4-2/Assets/Scripts/ForgingPoint/ForgintPointManager.cs

@ -77,6 +77,9 @@ public class ForgintPointManager : Singleton<ForgintPointManager>
LoadCardId(); LoadCardId();
GenerateViewCard(); GenerateViewCard();
//自动选择第一张卡
ChooseViewCard(cardTypeHeaderButton[0].cardId[0]);
GenerateEnmptyMapListForTool(); GenerateEnmptyMapListForTool();
StartCoroutine(GenerateProcessTest()); StartCoroutine(GenerateProcessTest());
} }
@ -318,6 +321,7 @@ public class ForgintPointManager : Singleton<ForgintPointManager>
foreach (var id in PlayerStatsManager.Instance.cardDeck.cardDeckList) foreach (var id in PlayerStatsManager.Instance.cardDeck.cardDeckList)
{ {
cardTypeHeaderButton[0].cardId.Add(id); cardTypeHeaderButton[0].cardId.Add(id);
//区分效果卡和涂色卡
/*if (int.Parse(id) > 1999) /*if (int.Parse(id) > 1999)
{ {
cardTypeHeaderButton[1].cardId .Add(id); cardTypeHeaderButton[1].cardId .Add(id);
@ -589,7 +593,7 @@ public class ForgintPointManager : Singleton<ForgintPointManager>
mapHasSet .Remove (endNode); mapHasSet .Remove (endNode);
colorHasSet .Add (endNode); colorHasSet .Add (endNode);
forgedMapUnityPool .Add (endNode); forgedMapUnityPool .Add (endNode);
ChangeInforText(endNode.locationX, endNode.locationY, "-0", 0); ChangeInforText(endNode.locationX, endNode.locationY, "-9", 9);
} }
} }

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

@ -123,7 +123,7 @@ public class GameManager : Singleton<GameManager>
{ {
//生成角色数据 //生成角色数据
if (PlayerStatsManager.Instance.playerState != null) if (PlayerStatsManager.Instance.playerState != null)
playerState = Instantiate(PlayerStatsManager.Instance.playerState); playerState = PlayerStatsManager.Instance.playerState;
//生成角色数据 //生成角色数据
if (ServentStateManager.Instance.servantState != null) if (ServentStateManager.Instance.servantState != null)
servantState = Instantiate(ServentStateManager.Instance.servantState); servantState = Instantiate(ServentStateManager.Instance.servantState);
@ -232,7 +232,10 @@ public class GameManager : Singleton<GameManager>
//同步太阳 //同步太阳
if(complete ==true ) if(complete ==true )
SyncColourSunUI(); SyncColourSunUI();
} }
public void SyncColourSunUI() public void SyncColourSunUI()
{ {
float redNodeCount = MapUnityManager.Instance.redNodeCount; float redNodeCount = MapUnityManager.Instance.redNodeCount;
@ -691,6 +694,9 @@ public class GameManager : Singleton<GameManager>
public event Action usedCardEvent; public event Action usedCardEvent;
//触发漩涡同步颜色 //触发漩涡同步颜色
public event Action whirlpoolEffectSycn; public event Action whirlpoolEffectSycn;
//费用变化
public event Action costChange;
public void BroadCastWhirlpoolEffectSycn() public void BroadCastWhirlpoolEffectSycn()
{ {
if (whirlpoolEffectSycn != null) if (whirlpoolEffectSycn != null)
@ -701,5 +707,10 @@ public class GameManager : Singleton<GameManager>
if (usedCardEvent != null) if (usedCardEvent != null)
usedCardEvent(); usedCardEvent();
} }
public void BroadCostChangeSycn()
{
if (costChange != null)
costChange();
}
} }

2
ColorlessWorld-2024-4-2/Assets/Scripts/PlayerManager/PlayerStatsManager.cs

@ -150,7 +150,7 @@ public class PlayerStatsManager : Singleton <PlayerStatsManager>
cardPrefab.GetComponent<RectTransform>().localEulerAngles = new Vector3(0, 0, 0); cardPrefab.GetComponent<RectTransform>().localEulerAngles = new Vector3(0, 0, 0);
CardEntity cardEntity = cardPrefab.GetComponent<CardEntity>(); CardEntity cardEntity = cardPrefab.GetComponent<CardEntity>();
cardEntity.createCard(id, 0, false); cardEntity.createCard(id, 0, false);
cardEntity.isLookCard = true;
return cardPrefab; return cardPrefab;
} }

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

@ -52,7 +52,10 @@ public class Usermanager : Singleton<Usermanager>
[Header("角色将要造成的伤害")] [Header("角色将要造成的伤害")]
public float expectDamage; public float expectDamage;
//费用和步数检查
int lastCost;//上一帧的费用
int lastStep;
PlayerState_SO playerState;
public Usermanager(int health) public Usermanager(int health)
{ {
Health = health; Health = health;
@ -65,22 +68,37 @@ public class Usermanager : Singleton<Usermanager>
health = 100; health = 100;
Shield = 0; Shield = 0;
totalCost = 4; totalCost = 4;
playerState = PlayerStatsManager .Instance.playerState;
} }
private void Update() private void Update()
{ {
/* if(lasteShield != shield ) /* if(lasteShield != shield )
{
if (lasteShield < shield)
{
StartCoroutine(AudioManager.Instance.WaitShieldVoicePlayer(1, 0.9f));
}
else
{
// AudioManager.Instance.ShieldVoicePlayer(-1);
}
lasteShield = shield;
}
*/
//判断费用和步数是否改变
CostAndStepCheck();
}
//判断费用和步数是否改变
private void CostAndStepCheck()
{
if(playerState .currentCost!= lastCost ||playerState .currentStepRange != lastStep )
{ {
if (lasteShield < shield) lastCost = playerState.currentCost;
{ lastStep = playerState.currentStepRange;
StartCoroutine(AudioManager.Instance.WaitShieldVoicePlayer(1, 0.9f)); GameManager.Instance.BroadCostChangeSycn();
}
else
{
// AudioManager.Instance.ShieldVoicePlayer(-1);
}
lasteShield = shield;
} }
*/
} }
//Buff施加 //Buff施加
public void SufferPlayerAbnormalCondition(string condition, int value ,Buff buff) public void SufferPlayerAbnormalCondition(string condition, int value ,Buff buff)

Loading…
Cancel
Save