Browse Source

Merge remote-tracking branch 'origin/dev-0524' into dev-0818

pull/24/head
45 1 year ago
parent
commit
20dd06e9a5
  1. 2
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/AshBeetle.prefab
  2. 2
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Skullmage.prefab
  3. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs
  4. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs
  5. 22
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs
  6. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs.meta
  7. 63
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs
  8. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs.meta
  9. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs.meta
  10. 39
      ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs
  11. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs.meta
  12. 38
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs
  13. BIN
      ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache

2
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/AshBeetle.prefab

@ -310,7 +310,7 @@ MonoBehaviour:
moveType: 0 moveType: 0
rangePool: [] rangePool: []
enemyType: 0 enemyType: 0
enemyScript: 5 enemyScript: 6
lineAim: {fileID: 7509110568895175458} lineAim: {fileID: 7509110568895175458}
canLineAppre: 1 canLineAppre: 1
enemyUIBar: {fileID: 0} enemyUIBar: {fileID: 0}

2
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Skullmage.prefab

@ -1382,7 +1382,7 @@ GameObject:
- component: {fileID: 5466202603420420700} - component: {fileID: 5466202603420420700}
- component: {fileID: 3938169004148627963} - component: {fileID: 3938169004148627963}
m_Layer: 9 m_Layer: 9
m_Name: Skullmage m_Name: SkullMage
m_TagString: Enemy m_TagString: Enemy
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0

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

@ -27,6 +27,7 @@ public class CardOriginalDataList : Singleton<CardOriginalDataList>
public HashSet<int> GetCardRewards(int count) public HashSet<int> GetCardRewards(int count)
{ {
double rareCardCount = 0;
var random = new System.Random(); var random = new System.Random();
var selectedCards = new HashSet<int>(); var selectedCards = new HashSet<int>();
@ -55,6 +56,7 @@ public class CardOriginalDataList : Singleton<CardOriginalDataList>
{ {
// 从普通卡牌中选择 // 从普通卡牌中选择
selectedCards.Add(SelectRandomCard(commCardOriginalDataList, random)); selectedCards.Add(SelectRandomCard(commCardOriginalDataList, random));
rareCardCount++;
} }
// 检查是否已经选够了卡牌数量 // 检查是否已经选够了卡牌数量
if (selectedCards.Count >= count) if (selectedCards.Count >= count)
@ -67,7 +69,7 @@ public class CardOriginalDataList : Singleton<CardOriginalDataList>
// 如果这次没有抽到传说卡牌,则增加修正值 // 如果这次没有抽到传说卡牌,则增加修正值
if (!selectedCards.Overlaps(legendaryCardOriginalDataList.Keys)&& GameManager.Instance.cardRewardsCounter>2) if (!selectedCards.Overlaps(legendaryCardOriginalDataList.Keys)&& GameManager.Instance.cardRewardsCounter>2)
{ {
GameManager.Instance.cardRewardsRarityAdjustment = Math.Min(GameManager.Instance.cardRewardsRarityAdjustment + 1.0, 63.0); GameManager.Instance.cardRewardsRarityAdjustment = Math.Min(GameManager.Instance.cardRewardsRarityAdjustment + rareCardCount, 63.0);
} }
foreach (var card in selectedCards) foreach (var card in selectedCards)
{ {

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

@ -57,6 +57,8 @@ public class TurnMaster : Singleton<TurnMaster>
//洗牌--抽卡 //洗牌--抽卡
StartCoroutine(ShuffleWithLosingCards()); StartCoroutine(ShuffleWithLosingCards());
//判断眩晕等能不能行动 //判断眩晕等能不能行动
Usermanager.Instance.BanActionJudge(); Usermanager.Instance.BanActionJudge();
//回合开始结算玩家buff //回合开始结算玩家buff

22
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs

@ -0,0 +1,22 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyName : MonoBehaviour
{
public const string skullGuardian = "SkullGuardian";
public const string skeletonArcher = "SkeletonArcher";
public const string skullmage = "SkullMage";
public const string ashBeetle = "AshBeetle";
public const string hoodWanderer = "HoodWanderer";
public const string skullWarlock = "SkullWarlock";
public const string blastFistMushroom = "BlastFistMushroom";
public const string shatteringFistMushroom = "ShatteringFistMushroom";
public const string parasiticMushroom = "ParasiticMushroom";
public const string emberWraith = "EmberWraith";
public const string drowsyShroom = "DrowsyShroom";
public const string bone = "Bone";
public const string corrosiveSludge = "CorrosiveSludge";
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs.meta

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

63
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs

@ -0,0 +1,63 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEngine;
public class EnemyPool : MonoBehaviour
{
public static Dictionary<List<string>, float> weakEnemyPool = new Dictionary<List<string>, float>()
{
{ new List<string> { EnemyName.ashBeetle,EnemyName.hoodWanderer}, 0.25f },
{ new List<string> { EnemyName.skullGuardian,EnemyName.skullWarlock}, 0.25f },
{ new List<string> { EnemyName.blastFistMushroom}, 0.25f },
{ new List<string> { EnemyName.corrosiveSludge,EnemyName.skullmage}, 0.25f }
};
public static Dictionary<List<string>, float> strongEnemyPool = new Dictionary<List<string>, float>()
{
{ new List<string> { EnemyName.skullGuardian,EnemyName.skullmage,EnemyName.skullWarlock}, 0.245f },
{ new List<string> { EnemyName.shatteringFistMushroom,EnemyName.blastFistMushroom}, 0.125f },
{ new List<string> { EnemyName.parasiticMushroom,EnemyName.parasiticMushroom,EnemyName.blastFistMushroom}, 0.125f },
{ new List<string> { EnemyName.emberWraith,EnemyName.emberWraith,EnemyName.corrosiveSludge}, 0.065f },
{ new List<string> { EnemyName.ashBeetle,EnemyName.ashBeetle,EnemyName.hoodWanderer,EnemyName.hoodWanderer}, 0.125f },
{ new List<string> { EnemyName.ashBeetle,EnemyName.skullmage}, 0.125f },
{ new List<string> { EnemyName.emberWraith,EnemyName.emberWraith,EnemyName.corrosiveSludge}, 0.125f },
{ new List<string> { EnemyName.blastFistMushroom,EnemyName.skullmage,EnemyName.skullWarlock}, 0.065f }
};
public static List<string> GetRandomEnemyPool(Dictionary<List<string>, float> enemyPool)
{
System.Random random = new System.Random();
float totalWeight = enemyPool.Values.Sum();
float randomNumber = (float)random.NextDouble() * totalWeight;
float cumulativeWeight = 0f;
foreach (var action in enemyPool)
{
cumulativeWeight += action.Value;
if (randomNumber <= cumulativeWeight)
{
return action.Key;
}
}
return enemyPool.Keys.Last();
}
public static List<GameObject> getEnemyPrefab(List<string> enemyList)
{
List <GameObject> enemyPrefabs= new List<GameObject>();
foreach (var enemy in enemyList)
{
GameObject prefab = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Prefab/EnemyPrefab/"+enemy+ ".prefab");
enemyPrefabs.Add(prefab);
}
foreach (var enemy in enemyPrefabs)
{
Debug.Log(enemy);
}
return enemyPrefabs;
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs.meta

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

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

@ -4,7 +4,7 @@ MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 0 executionOrder: 5
icon: {instanceID: 0} icon: {instanceID: 0}
userData: userData:
assetBundleName: assetBundleName:

39
ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs

@ -22,15 +22,48 @@ public class MapManager : Singleton<MapManager>
void Start() void Start()
{ {
StartCoroutine (GenerateProcess()); StartCoroutine (starttest());
}
public void test()
{
List<string> enemyList = EnemyPool.GetRandomEnemyPool(EnemyPool.strongEnemyPool);
foreach (string a in enemyList)
{
Debug.Log("¹ÖÎïÊÇ" + a);
}
List<GameObject> enemyListTest = EnemyPool.getEnemyPrefab(enemyList);
HashSet<MapUnity> mapSet = MathTool.GetRandomElements(getNodeTools.getAllNodesExceptEnemyAndPlayer(), enemyListTest.Count);
List<MapUnity> mapList = new List<MapUnity>(mapSet);
Debug.Log("enemyListTest´óС" + enemyListTest.Count);
Debug.Log("mapList´óС" + mapList.Count);
for (int i = 0; i < mapList.Count; i++)
{
Debug.Log("¹ÖÎï"+ enemyListTest[i]);
Debug.Log("mapunityÊÇ" + mapList[i]);
var currentEnemy = Instantiate(enemyListTest[i], GameManager.Instance.X[mapList[i].locationX].Y[mapList[i].locationY].transform.position, enemyListTest[i].transform.rotation);
EnemyNode enemynode = currentEnemy.GetComponent<EnemyNode>();
enemynode.positionX = mapList[i].locationX;
enemynode.positionY = mapList[i].locationY;
enemynode.StartPosition();
}
}
IEnumerator starttest()
{
yield return StartCoroutine(GenerateProcess());
//test();
} }
IEnumerator GenerateProcess() IEnumerator GenerateProcess()
{ {
StartCoroutine(CompleteGenerate()); yield return StartCoroutine(CompleteGenerate());
yield return 0;
} }
IEnumerator MapGenerate() IEnumerator MapGenerate()
{ {
for (int i = 0; i < line; i++) for (int i = 0; i < line; i++)

2
ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs.meta

@ -4,7 +4,7 @@ MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 0 executionOrder: 8
icon: {instanceID: 0} icon: {instanceID: 0}
userData: userData:
assetBundleName: assetBundleName:

38
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs

@ -70,6 +70,23 @@ public class getNodeTools
return set; return set;
} }
public static HashSet<MapUnity> getAllNodesExceptEnemyAndPlayer()
{
HashSet<MapUnity> set = new HashSet<MapUnity>();
for (int i = 0; i < GameManager.Instance.X.Count; i++)
{
for (int j = 0; j < GameManager.Instance.X[i].Y.Count; j++)
{
if (GameManager.Instance.X[i].Y[j].enemyNode==null&& !GameManager.Instance.X[i].Y[j].Equals(GameManager.Instance.playerOn))
{
set.Add(GameManager.Instance.X[i].Y[j]);
}
}
}
return set;
}
public static HashSet<MapUnity> getAllPlayerNodes() public static HashSet<MapUnity> getAllPlayerNodes()
{ {
HashSet<MapUnity> set = new HashSet<MapUnity>(); HashSet<MapUnity> set = new HashSet<MapUnity>();
@ -87,6 +104,27 @@ public class getNodeTools
return set; return set;
} }
public static HashSet<MapUnity> getAllEnemyNodesExceptEnemy()
{
HashSet<MapUnity> set = new HashSet<MapUnity>();
for (int i = 0; i < GameManager.Instance.X.Count; i++)
{
for (int j = 0; j < GameManager.Instance.X[i].Y.Count; j++)
{
if (GameManager.Instance.X[i].Y[j].whoColour.Equals(MapUnity.WhoColour.enemyColour))
{
if (GameManager.Instance.X[i].Y[j].enemyNode==null)
{
set.Add(GameManager.Instance.X[i].Y[j]);
}
}
}
}
return set;
}
public static bool tryGetNodeFroPlayer(MapUnity currentNode, HashSet<MapUnity> results) public static bool tryGetNodeFroPlayer(MapUnity currentNode, HashSet<MapUnity> results)
{ {
bool canPass = true; bool canPass = true;

BIN
ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache

Binary file not shown.
Loading…
Cancel
Save