From 453e92e9bd926bcddf599cf74a8b7d4d600546c2 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Thu, 22 Aug 2024 16:20:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=80=AA=E7=89=A9=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prefab/EnemyPrefab/AshBeetle.prefab | 4 +- .../Prefab/EnemyPrefab/Skullmage.prefab | 2 +- .../Scripts/Card/CardOriginalDataList.cs | 4 +- .../Assets/Scripts/Card/TurnMaster.cs | 2 + .../Assets/Scripts/Enemy/EnemyName.cs | 22 ++++++ .../Assets/Scripts/Enemy/EnemyName.cs.meta | 11 +++ .../Assets/Scripts/Enemy/EnemyPool.cs | 63 ++++++++++++++++++ .../Assets/Scripts/Enemy/EnemyPool.cs.meta | 11 +++ .../Assets/Scripts/GameManager.cs.meta | 2 +- .../Assets/Scripts/MapManager.cs | 39 ++++++++++- .../Assets/Scripts/MapManager.cs.meta | 2 +- .../Assets/Scripts/Tool/getNodeTools.cs | 38 +++++++++++ ...harp-Editor.csproj.AssemblyReference.cache | Bin 132832 -> 131356 bytes 13 files changed, 192 insertions(+), 8 deletions(-) create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/AshBeetle.prefab b/ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/AshBeetle.prefab index b4d3c8b6..a243618d 100644 --- a/ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/AshBeetle.prefab +++ b/ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/AshBeetle.prefab @@ -310,10 +310,12 @@ MonoBehaviour: moveType: 0 rangePool: [] enemyType: 0 - enemyScript: 5 + enemyScript: 6 lineAim: {fileID: 7509110568895175458} canLineAppre: 1 enemyUIBar: {fileID: 0} + bone: {fileID: 0} + bone_Re: {fileID: 0} canMove: 1 planAction: 0 --- !u!114 &5770909355494179675 diff --git a/ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Skullmage.prefab b/ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Skullmage.prefab index d0efeef7..812965fa 100644 --- a/ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Skullmage.prefab +++ b/ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Skullmage.prefab @@ -1307,7 +1307,7 @@ GameObject: - component: {fileID: 5466202603420420700} - component: {fileID: 3938169004148627963} m_Layer: 9 - m_Name: Skullmage + m_Name: SkullMage m_TagString: Enemy m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs index b4974486..bbbf77ae 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs @@ -27,6 +27,7 @@ public class CardOriginalDataList : Singleton public HashSet GetCardRewards(int count) { + double rareCardCount = 0; var random = new System.Random(); var selectedCards = new HashSet(); @@ -55,6 +56,7 @@ public class CardOriginalDataList : Singleton { // 从普通卡牌中选择 selectedCards.Add(SelectRandomCard(commCardOriginalDataList, random)); + rareCardCount++; } // 检查是否已经选够了卡牌数量 if (selectedCards.Count >= count) @@ -67,7 +69,7 @@ public class CardOriginalDataList : Singleton // 如果这次没有抽到传说卡牌,则增加修正值 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) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs index eb425d12..34041914 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs @@ -57,6 +57,8 @@ public class TurnMaster : Singleton //洗牌--抽卡 StartCoroutine(ShuffleWithLosingCards()); + + //判断眩晕等能不能行动 Usermanager.Instance.BanActionJudge(); //回合开始结算玩家buff diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs new file mode 100644 index 00000000..3583f982 --- /dev/null +++ b/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"; +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyName.cs.meta new file mode 100644 index 00000000..7df9618b --- /dev/null +++ b/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: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs new file mode 100644 index 00000000..9bf5fdcf --- /dev/null +++ b/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, float> weakEnemyPool = new Dictionary, float>() + { + { new List { EnemyName.ashBeetle,EnemyName.hoodWanderer}, 0.25f }, + { new List { EnemyName.skullGuardian,EnemyName.skullWarlock}, 0.25f }, + { new List { EnemyName.blastFistMushroom}, 0.25f }, + { new List { EnemyName.corrosiveSludge,EnemyName.skullmage}, 0.25f } + }; + + public static Dictionary, float> strongEnemyPool = new Dictionary, float>() + { + { new List { EnemyName.skullGuardian,EnemyName.skullmage,EnemyName.skullWarlock}, 0.245f }, + { new List { EnemyName.shatteringFistMushroom,EnemyName.blastFistMushroom}, 0.125f }, + { new List { EnemyName.parasiticMushroom,EnemyName.parasiticMushroom,EnemyName.blastFistMushroom}, 0.125f }, + { new List { EnemyName.emberWraith,EnemyName.emberWraith,EnemyName.corrosiveSludge}, 0.065f }, + { new List { EnemyName.ashBeetle,EnemyName.ashBeetle,EnemyName.hoodWanderer,EnemyName.hoodWanderer}, 0.125f }, + { new List { EnemyName.ashBeetle,EnemyName.skullmage}, 0.125f }, + { new List { EnemyName.emberWraith,EnemyName.emberWraith,EnemyName.corrosiveSludge}, 0.125f }, + { new List { EnemyName.blastFistMushroom,EnemyName.skullmage,EnemyName.skullWarlock}, 0.065f } + }; + + + public static List GetRandomEnemyPool(Dictionary, 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 getEnemyPrefab(List enemyList) + { + List enemyPrefabs= new List(); + foreach (var enemy in enemyList) + { + GameObject prefab = AssetDatabase.LoadAssetAtPath("Assets/Prefab/EnemyPrefab/"+enemy+ ".prefab"); + enemyPrefabs.Add(prefab); + } + foreach (var enemy in enemyPrefabs) + { + Debug.Log(enemy); + } + return enemyPrefabs; + } + +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs.meta new file mode 100644 index 00000000..12632203 --- /dev/null +++ b/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: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs.meta index 18a2e8d7..24ed98b8 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs.meta +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs.meta @@ -4,7 +4,7 @@ MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] - executionOrder: 0 + executionOrder: 5 icon: {instanceID: 0} userData: assetBundleName: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs index d73c59bc..d0de4dfc 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs @@ -21,15 +21,48 @@ public class MapManager : Singleton void Start() { - StartCoroutine (GenerateProcess()); + StartCoroutine (starttest()); + + } + + public void test() + { + List enemyList = EnemyPool.GetRandomEnemyPool(EnemyPool.strongEnemyPool); + foreach (string a in enemyList) + { + Debug.Log("怪物是" + a); + } + List enemyListTest = EnemyPool.getEnemyPrefab(enemyList); + HashSet mapSet = MathTool.GetRandomElements(getNodeTools.getAllNodesExceptEnemyAndPlayer(), enemyListTest.Count); + List mapList = new List(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.positionX = mapList[i].locationX; + enemynode.positionY = mapList[i].locationY; + enemynode.StartPosition(); + + } + } + IEnumerator starttest() + { + + yield return StartCoroutine(GenerateProcess()); + //test(); } IEnumerator GenerateProcess() { - StartCoroutine(CompleteGenerate()); - yield return 0; + yield return StartCoroutine(CompleteGenerate()); } + + IEnumerator MapGenerate() { for (int i = 0; i < line; i++) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs.meta index 97d03399..4d01d4bf 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs.meta +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs.meta @@ -4,7 +4,7 @@ MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] - executionOrder: 0 + executionOrder: 8 icon: {instanceID: 0} userData: assetBundleName: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs index 4fd45ce6..7251e97e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs @@ -70,6 +70,23 @@ public class getNodeTools return set; } + public static HashSet getAllNodesExceptEnemyAndPlayer() + { + HashSet set = new HashSet(); + 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 getAllPlayerNodes() { HashSet set = new HashSet(); @@ -87,6 +104,27 @@ public class getNodeTools return set; } + public static HashSet getAllEnemyNodesExceptEnemy() + { + HashSet set = new HashSet(); + 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 results) { bool canPass = true; diff --git a/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache b/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache index 9180af12b70504bac7f55e7bf0786eaf5b196332..8b5f02138c46325fe1dabcb10b20fc2a684cf167 100644 GIT binary patch literal 131356 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�M!|NhS^idYe~Jmx*eQVFRrbb*MS4q?yha=N1Zjwj-0)3+-*Wbg_SaDqS?pcq{lJ z;1cZ|77DL9Zq2gQkG{S~EEf9~TQr7P1Q~@s@b5@gt-}g@T*VXB2}kh+NAZNCc!E|u z!PW*6$mVryDOMOGpI4deq)! z)UbyFNS5TlBc)C0yq*DY6yh!2@X^wR@H#U5&kipwhXvVw*S~k6fl^};Z;(HTHHs`E zlf#I3<=(Y=*yCuB%3=Wb48>Rve(R9vaK<3a#k&05oZx(3My7S{}e@$~X`NCXY04qO}Mg9dB?6@>+GEe4GoHcF3XTkLBq2p_&-@izN~RxiToVk5M!%jC zJAI{!PDj0sjgSeL6@uNoR%JJPQ@eSXW)eF#DYs*rGFqXSPPWu94WRS^wkbYY!4B_H z)8RgKFmf;BXe<#3O)e0vU@sU>=4crHI-v)7mPxizl%(La8r&9^(N9Pu5(`d9Nc8=b zG8hC)nA&;(40~l`$OXWDn%G{#!Gj}UPHlo>f6CEg)2btE0|VO$j*vbz-~_6MLA6@I z5)ZgxPlr=-fx{O+6j~qMnni=>K-)&YupmSkH4ypr!Ejm5(^(=Ix?C_E$`wngv_X%Z z`+nf&X$~S7hf52>kyQf+M|~$-)5O(UA|R`!0^$sawnj)RD^zSgCxgbsUY0$sh+rh? zP}23T78w8Mllpm`JnY!fDYcWGXYIY%VJ%=$hfm+rU5Ot|5Xee%!cYUn1$m!S()nBi z9O9qG*V_YS*l|HJ^X+^d#{8W(xalv4`AB4BnUA#aGar59b@H&854RHC`QPx<8uS#y zVm=jx|9Dmod7P3W!^zmn-8G3aP0vueQ`aj%{7}LkSZAyMhw2 zaeKsz{s=+P&c}~@OY~x*YGP>WgELSf%8~;TZM#@N3TP#WrJ{fopcsap6OaOgB?6{+ z?z|vl^g+|Ci2#;v;mn<(xFAF!&7F|}!ES`7WuTqI~*)fhqFYLyb+9Bu)r{}v>8Tk zXCv4rE9i+7Z3O$&!5~=XgCK5M=K(S7-~n$acHQdmg9knRXwi#BkR&cNnMN-wcY|fu zX4u9G{sckLh%1X-JBJ@W1hvGlObyCBi3r03u&(99N0^?pzK}e*}E_{k$2rTk_IT}0M z9^v@v4RtuSFX~L^Fe$;Av-A#Us_RUio#`B=rPtx3ZT<}J^IfVJy1}f$W%w@^ccXnc zr^7L+kz%;r;g}*g!+l?R9X{-7o8$xxZUH}0<|JVJ!h+qeC;{Ww2SdS0!1!e(f+4w> zvPIX-WVe5x6N|%6F(oA_2!o-DhSU8 RHSmm_719{2#uRLhS$m literal 132832 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 BfS&*W