Browse Source

合并冲突0811

pull/174/head
45 4 months ago
parent
commit
4e1fa62dff
  1. 7
      ColorlessWorld-2024-4-2/Assets/Lana Studio/Casual RPG VFX/Upgrade for URP/Upgrade for URP.unitypackage.meta
  2. 8
      ColorlessWorld-2024-4-2/Assets/Resources/WeaponNodePrefab.meta
  3. 1162
      ColorlessWorld-2024-4-2/Assets/Resources/WeaponNodePrefab/WeaponNode.prefab
  4. 7
      ColorlessWorld-2024-4-2/Assets/Resources/WeaponNodePrefab/WeaponNode.prefab.meta
  5. 108
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs
  6. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs
  7. 16
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs
  8. 14
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs
  9. 155
      ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs
  10. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs

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

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

8
ColorlessWorld-2024-4-2/Assets/Resources/WeaponNodePrefab.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b34fc86e461817044a94ca07d6237247
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1162
ColorlessWorld-2024-4-2/Assets/Resources/WeaponNodePrefab/WeaponNode.prefab

File diff suppressed because it is too large

7
ColorlessWorld-2024-4-2/Assets/Resources/WeaponNodePrefab/WeaponNode.prefab.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d5d375e33c8cc1143b6e1e4ed370fef6
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

108
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs

@ -1,5 +1,6 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class EnemyManager : Singleton<EnemyManager>
@ -29,6 +30,7 @@ public class EnemyManager : Singleton<EnemyManager>
enemyCard_6.nodesColor = new string[1] { Name.NodeItem.Bomb };
GameManager.Instance.enemy.deck.Clear();
GameManager.Instance.enemy.deck.AddRange(new List<EnemyCard> { enemyCard, enemyCard_2, enemyCard_3,enemyCard_4, enemyCard_5, enemyCard_6 });
loadBlastJesterWeaponNode();
break;
case Name.EnemyName.Pontiff:
EnemyCard enemyCardA = new EnemyCard();
@ -51,6 +53,7 @@ public class EnemyManager : Singleton<EnemyManager>
enemyCardF.nodesColor = new string[1] { Name.NodeItem.Believer };
GameManager.Instance.enemy.deck.Clear();
GameManager.Instance.enemy.deck.AddRange(new List<EnemyCard> { enemyCardA, enemyCardB, enemyCardC, enemyCardD, enemyCardE, enemyCardF });
loadPontiffWeaponNode();
break;
case Name.EnemyName.CompulsiveArcanist:
EnemyCard enemyCard1 = new EnemyCard();
@ -73,6 +76,7 @@ public class EnemyManager : Singleton<EnemyManager>
enemyCard6.nodesColor = new string[3] { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow };
GameManager.Instance.enemy.deck.Clear();
GameManager.Instance.enemy.deck.AddRange(new List<EnemyCard> { enemyCard1, enemyCard2, enemyCard3, enemyCard4, enemyCard5, enemyCard6 });
loadCompulsiveArcanistWeaponNode();
break;
case Name.EnemyName.CultHierophant:
EnemyCard enemyCardA1 = new EnemyCard();
@ -95,7 +99,111 @@ public class EnemyManager : Singleton<EnemyManager>
enemyCardA6.nodesColor = new string[1] { Name.NodeItem.Cultist };
GameManager.Instance.enemy.deck.Clear();
GameManager.Instance.enemy.deck.AddRange(new List<EnemyCard> { enemyCardA1, enemyCardA2, enemyCardA3, enemyCardA4, enemyCardA5, enemyCardA6 });
loadCultHierophantWeaponNode();
break;
}
}
public void loadBlastJesterWeaponNode()
{
GameObject gemA = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeA = gemA.GetComponent<WeaponNode>();
weaponNodeA.result = Name.WeaponNodeFunction.addScore;
weaponNodeA.resultValue = "10";
weaponNodeA.condition = Name.WeaponNodeCondition.bombbomb;
weaponNodeA.conditionValue = Name.none;
GameObject gemB = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeB = gemB.GetComponent<WeaponNode>();
weaponNodeB.result = Name.WeaponNodeFunction.bomb;
weaponNodeB.resultValue = "1";
weaponNodeB.condition = Name.WeaponNodeCondition.everyNumNodeConvert;
weaponNodeB.conditionValue = "15";
GameObject gemC = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeC = gemC.GetComponent<WeaponNode>();
weaponNodeC.condition = Name.none;
weaponNodeC.result = Name.WeaponNodeFunction.everyBombAddScore;
weaponNodeC.resultValue = "2";
WeaponManager.Instance.loadEnemyWeaponNode(0, gemA);
WeaponManager.Instance.loadEnemyWeaponNode(1, gemB);
WeaponManager.Instance.loadEnemyWeaponNode(2, gemC);
}
public void loadPontiffWeaponNode()
{
GameObject gemA = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeA = gemA.GetComponent<WeaponNode>();
weaponNodeA.result = Name.WeaponNodeFunction.everyHolyNodeAddScore;
weaponNodeA.resultValue = "1";
weaponNodeA.condition = Name.none;
weaponNodeA.conditionValue = Name.none;
GameObject gemB = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeB = gemB.GetComponent<WeaponNode>();
weaponNodeB.result = Name.WeaponNodeFunction.everyBelieverAddScore;
weaponNodeB.resultValue = "2";
weaponNodeA.condition = Name.none;
weaponNodeA.conditionValue = Name.none;
WeaponManager.Instance.loadEnemyWeaponNode(0, gemA);
WeaponManager.Instance.loadEnemyWeaponNode(1, gemB);
}
public void loadCompulsiveArcanistWeaponNode()
{
GameObject gemA = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeA = gemA.GetComponent<WeaponNode>();
weaponNodeA.result = Name.WeaponNodeFunction.addScore;
weaponNodeA.resultValue = "20";
weaponNodeA.condition = Name.WeaponNodeCondition.threeColorCountMoreThan;
weaponNodeA.conditionValue = "15";
GameObject gemB = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeB = gemB.GetComponent<WeaponNode>();
weaponNodeB.result = Name.WeaponNodeFunction.addScore;
weaponNodeB.resultValue = "15";
weaponNodeB.condition = Name.WeaponNodeCondition.threeColorDiffMoreThan;
weaponNodeB.conditionValue = "10";
GameObject gemC = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeC = gemC.GetComponent<WeaponNode>();
weaponNodeC.result = Name.WeaponNodeFunction.addScore;
weaponNodeC.resultValue = "8";
weaponNodeC.condition = Name.WeaponNodeCondition.threeColorDiffMoreThan;
weaponNodeC.conditionValue = "5";
GameObject gemD = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeD = gemD.GetComponent<WeaponNode>();
weaponNodeD.result = Name.WeaponNodeFunction.addScore;
weaponNodeD.resultValue = "5";
weaponNodeD.condition = Name.WeaponNodeCondition.threeColorCountEqual;
weaponNodeD.conditionValue = Name.none;
GameObject gemE = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeE = gemE.GetComponent<WeaponNode>();
weaponNodeE.result = Name.WeaponNodeFunction.threeColorRedistribution;
weaponNodeE.resultValue = Name.none;
weaponNodeE.condition = Name.none;
weaponNodeE.conditionValue = Name.none;
WeaponManager.Instance.loadEnemyWeaponNode(0, gemA);
WeaponManager.Instance.loadEnemyWeaponNode(1, gemB);
WeaponManager.Instance.loadEnemyWeaponNode(2, gemC);
WeaponManager.Instance.loadEnemyWeaponNode(3, gemD);
WeaponManager.Instance.loadEnemyWeaponNode(4, gemE);
}
public void loadCultHierophantWeaponNode()
{
GameObject gemA = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
WeaponNode weaponNodeA = gemA.GetComponent<WeaponNode>();
weaponNodeA.result = Name.WeaponNodeFunction.everyBlackNodeAddScore;
weaponNodeA.resultValue = "1";
weaponNodeA.condition = Name.none;
weaponNodeA.conditionValue = Name.none;
WeaponManager.Instance.loadEnemyWeaponNode(0, gemA);
}
}

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

@ -184,7 +184,7 @@ public class GameManager : Singleton<GameManager>
//生成敌人卡牌预览
enemy.RefreshCardDeckUI();
//加载敌人
EnemyManager.Instance.loadEnemy(Name.EnemyName.CultHierophant);
EnemyManager.Instance.loadEnemy(Name.EnemyName.BlastJester);
}
public void GenerateEnmptyMapList()
{

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

@ -44,6 +44,22 @@ public class MathTool
return numbers;
}
public static HashSet<string> GenerateIntegerSet(int a, int b)
{
HashSet<string> result = new HashSet<string>();
int step = (a <= b) ? 1 : -1;
// 관벵긋썹令(b + step횅괏관벵b)
for (int i = a; i != b + step; i += step)
{
result.Add(i.ToString());
}
return result;
}
public static string GetKeyWithMaxValue(Dictionary<string, int> dict)
{
if (dict == null)

14
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs

@ -1,7 +1,9 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
using UnityEngine.UIElements;
using static UnityEngine.InputSystem.InputControlScheme.MatchResult;
using Match = System.Text.RegularExpressions.Match;
@ -988,6 +990,9 @@ public static class Name
//Õ¨µ¯±¬Õ¨
public const string bombbomb = "bombbomb";
public static readonly HashSet<string> PlayerConditionSet= new HashSet<string> { cardConditionPattern,position, positionUnused, positionUsed, diffSettle
,usedCard,node,threeColorCountMoreThan,everyNumNodeConvert};
}
public static class NodeItem
@ -1001,6 +1006,12 @@ public static class Name
public const string Bomb = "Bomb";
public static readonly List<string> AllItem= new() { Cultist, Volcano, AcidRain , Wind , Believer, Bomb };
}
public static class WeaponNode
{
public const string PrefabPath = "WeaponNodePrefab/";
public const string PrefabName = "WeaponNode";
}
public static class WeaponNodeFunction
{
//¼Ó·Ö
@ -1048,6 +1059,9 @@ public static class Name
//Éú³ÉÕ¨µ¯
public const string bomb = "bomb";
public static readonly HashSet<string> PlayerResultSet = new HashSet<string> { addScore,mulScore, repetWeaponNode, redNodeCount, blueNodeCount
,yellowNodeCount,mostNodeCount,leastNodeCount,allNodeCount,drawCard,isIgnoreCondition,everyRedNodeAddScore,everyYellowNodeAddScore,everyBlueNodeAddScore};
}
public static class DomainFunction

155
ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs

@ -1,6 +1,8 @@
using Cinemachine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
public class WeaponManager : Singleton<WeaponManager>
@ -30,6 +32,8 @@ public class WeaponManager : Singleton<WeaponManager>
private void Start()
{
DontDestroyOnLoad(this.gameObject);
}
private void Update()
@ -146,4 +150,155 @@ public class WeaponManager : Singleton<WeaponManager>
}
}
public GameObject getRandomWeaponNodeForPlayer()
{
GameObject gem = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
string condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerConditionSet, 1).ElementAt(0);
string conditionValue="";
string[] nodesMark=new string[4];
string[] nodesColor = new string[4];
string result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerResultSet, 1).ElementAt(0);
string resultValue="";
switch (condition)
{
case Name.WeaponNodeCondition.position:
conditionValue= MathTool.GetRandomElements(new HashSet<string> {"0","1","2","3","4" }, 1).ElementAt(0);
break;
case Name.WeaponNodeCondition.positionUnused:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0);
break;
case Name.WeaponNodeCondition.positionUsed:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0);
break;
case Name.WeaponNodeCondition.diffSettle:
conditionValue=Name.none;
break;
case Name.WeaponNodeCondition.usedCard:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "1", "2", "3", "4", "5" }, 1).ElementAt(0);
break;
case Name.WeaponNodeCondition.threeColorDiffMoreThan:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "3", "4", "5" }, 1).ElementAt(0);
break;
case Name.WeaponNodeCondition.everyNumNodeConvert:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "7", "8", "9" }, 1).ElementAt(0);
break;
case Name.WeaponNodeCondition.bombbomb:
conditionValue = Name.none;
break;
case Name.WeaponNodeCondition.node:
conditionValue = Name.none;
HashSet<string> nodesA = MathTool.GetRandomElements(new HashSet<string> { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 3);
nodesA.Add("0_0");
nodesMark=nodesA.ToArray();
nodesColor = new string[4] { MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)
,MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)
,MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)
,MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)};
break;
case Name.WeaponNodeCondition.cardConditionPattern:
conditionValue = Name.none;
StringBuilder sb = new StringBuilder();
sb.Append(MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0))
.Append(MathTool.GetRandomElements(new HashSet<string> { "<", ">" }, 1).ElementAt(0))
.Append(MathTool.GetRandomElements(new HashSet<string> { "5", "6", "7", "8", "9" }, 1).ElementAt(0));
condition =sb.ToString();
break;
}
switch (result)
{
case Name.WeaponNodeFunction.addScore:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(7, 12), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.mulScore:
resultValue = MathTool.GetRandomElements(new HashSet<string> { "1", "2"}, 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.repetWeaponNode:
resultValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.redNodeCount:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.blueNodeCount:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.yellowNodeCount:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.mostNodeCount:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.leastNodeCount:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.allNodeCount:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(2, 4), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.drawCard:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 4), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.everyRedNodeAddScore:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 3), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.everyYellowNodeAddScore:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 3), 1).ElementAt(0);
break;
case Name.WeaponNodeFunction.everyBlueNodeAddScore:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 3), 1).ElementAt(0);
break;
case Name.NodeItem.Volcano:
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 2), 1).ElementAt(0);
break;
}
WeaponNode weaponNode=gem.GetComponent<WeaponNode>();
weaponNode.result = result;
weaponNode.resultValue = resultValue;
weaponNode.condition = condition;
weaponNode.conditionValue = conditionValue;
weaponNode.nodesMark = nodesMark;
weaponNode.nodesColor = nodesColor;
return gem;
}
public void loadEnemyWeaponNode(int position,GameObject weaponNode)
{
Transform weaponSlot = enemyWeaponNodeList.GetChild(position);
if (weaponSlot != null)
{
ClearAllChildren(weaponSlot);
weaponNode.transform.SetParent(weaponSlot.transform, true);
weaponNode.transform.localPosition = Vector3.zero;
weaponNode.transform.localRotation = Quaternion.identity;
weaponNode.transform.localScale = Vector3.one;
}
}
public void ClearAllChildren(Transform parent)
{
// 创建临时列表存储子物体(避免在循环中修改集合)
List<GameObject> children = new List<GameObject>();
// 收集所有子物体
foreach (Transform child in parent)
{
children.Add(child.gameObject);
}
// 删除所有子物体
foreach (GameObject child in children)
{
// 根据环境选择销毁方式
if (Application.isPlaying)
{
Destroy(child);
}
else // 编辑器模式下
{
DestroyImmediate(child);
}
}
}
}

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

@ -349,7 +349,7 @@ public class CardManager : Singleton<CardManager>
CardPictureManager.Instance.ToolX[i].Y[j].switchColorWithoutFX(Name.Color.White);
if (CardPictureManager.Instance.ToolX[i].Y[j].blockNode != null)
{
Destroy(CardPictureManager.Instance.ToolX[i].Y[j].blockNode.gameObject);
DestroyImmediate(CardPictureManager.Instance.ToolX[i].Y[j].blockNode.gameObject);
}
//CardPictureManager.Instance.ToolX[i].Y[j].gameObject.SetActive(false);
}
@ -465,7 +465,7 @@ public class CardManager : Singleton<CardManager>
CardPictureManager.Instance.ToolX[i].Y[j].switchColorWithoutFX(Name.Color.White);
if (CardPictureManager.Instance.ToolX[i].Y[j].blockNode != null)
{
Destroy(CardPictureManager.Instance.ToolX[i].Y[j].blockNode.gameObject);
DestroyImmediate(CardPictureManager.Instance.ToolX[i].Y[j].blockNode.gameObject);
}
//CardPictureManager.Instance.ToolX[i].Y[j].gameObject.SetActive(false);
}

Loading…
Cancel
Save