diff --git a/ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta b/ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta index 40718e88..48bd5222 100644 --- a/ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta +++ b/ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 <<<<<<<< HEAD:ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark.meta -guid: 7040b5d9d3751354894af163292234a4 +guid: 49d4f6582e94a5640b516eb9063f29a2 ======== guid: faf285059766ba34685517cd09eba7ae >>>>>>>> origin/dev-1217:ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs index 726d6b59..917cb95b 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs @@ -83,14 +83,28 @@ public class ContaminatusImmortalis : Enemy case EnemyAction_ShootAndPollute: canMove = false; canAttack = false; - canAoe = false; + canAoe = true; + break; + } + } + + public override void GetAimTarget() + { + if (targets != null) + { + targets.Clear(); + } + switch (enemyNode.currentActionScript) + { + case EnemyAction_ShootAndPollute: + targets = MathTool.GetRandomElements(getNodeTools.getAllNotBlackNodes(), 14); break; } } public IEnumerator PolluteAction() { - HashSet targets = MathTool.GetRandomElements(getNodeTools.getAllNotBlackNodes(), 14); + //HashSet targets = MathTool.GetRandomElements(getNodeTools.getAllNotBlackNodes(), 14); PolluteAndDamageNodes(targets,Name.NodeColor.Black, enemyNode.currentActionScript.colA, 1); yield return new WaitForSeconds(0.5f); } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs index 06268fe8..680f8e5a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs @@ -26,6 +26,7 @@ public class Enemy : MonoBehaviour public ZeroToFiveCircularCounter counter = new ZeroToFiveCircularCounter(); + public HashSet targets = new HashSet(); [Header("׼ͼ޳")] public LayerMask layerMask; @@ -54,6 +55,7 @@ public class Enemy : MonoBehaviour enemyNode.enemyUIBar.SwitchIntention(enemyAction); ActionValRandom(); BoolCheck(); + GetAimTarget(); enemyNode.enemy.SettlePlannText(enemyNode.enemy.enemyAction); enemyNode.enemy.SettleRangeAttack(); } @@ -74,6 +76,11 @@ public class Enemy : MonoBehaviour public virtual void BoolCheck() { + } + + public virtual void GetAimTarget() + { + } public virtual void SettlePlannText(EnemyAction currentAction) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs index b1f63734..2a654c54 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs @@ -166,12 +166,20 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver { ShowAttackPoolRange(attackRangePool); } + if (enemy.canAoe) + { + ShowAttackPoolRange(enemy.targets); + } break; case false: if (enemy.canAttack) { ShowAttackPoolRange(attackRangePool); } + if (enemy.canAoe) + { + ShowAttackPoolRange(enemy.targets); + } break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs index 0f3c5027..5290029f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs @@ -169,7 +169,7 @@ public class Gravitus : Enemy public IEnumerator PolluteAction() { MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); - HashSet targets = new HashSet { currentNode }; + targets = new HashSet { currentNode }; getNodeTools.getCircleNodeForBoom(targets, 2); int count = ClearNodesReturnCount(targets); enemyNode.EnemyState.shieldValue += count * 2; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs index d8945181..97b9a33e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs @@ -53,7 +53,7 @@ public class PrismReflector : Enemy enemyNode.currentActionScript.SettleText(enemyNode, enemyNode.currentActionScript.colA.ToString(), "ֵ͵ĵλʩ"+ enemyNode.currentActionScript.colA + "㻤ܲȾؿ"); break; case EnemyAction_Spell: - enemyNode.currentActionScript.SettleText(enemyNode, "", "ǰ1Χɫؿ"); + enemyNode.currentActionScript.SettleText(enemyNode, "", "1Χɫؿ"); break; } @@ -74,6 +74,25 @@ public class PrismReflector : Enemy } + public override void GetAimTarget() + { + if (targets != null) + { + targets.Clear(); + } + switch (enemyNode.currentActionScript) + { + case EnemyAction_ShieldAndPollution: + targets = MathTool.GetRandomElements(getNodeTools.getAllBlackNodes(), 3); + break; + case EnemyAction_Spell: + MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0); + targets = new HashSet { currentNode }; + getNodeTools.getCircleNodeForBoom(targets, 1); + break; + } + } + public override void BoolCheck() { switch (enemyNode.currentActionScript) @@ -81,12 +100,12 @@ public class PrismReflector : Enemy case EnemyAction_ShieldAndPollution: canMove = false; canAttack = false; - canAoe = false; + canAoe = true; break; case EnemyAction_Spell: canMove = false; canAttack = false; - canAoe = false; + canAoe = true; break; } } @@ -112,16 +131,16 @@ public class PrismReflector : Enemy } } EnemyManager.Instance.enemySpeedSortingList[index].EnemyState.shieldValue += EnemyManager.Instance.enemySpeedSortingList[index].ShieldCalculation(enemyNode.currentActionScript.colA); - HashSet targets = getNodeTools.getAllNotBlackNodes(); + //HashSet targets = getNodeTools.getAllNotBlackNodes(); RandomPollute(targets, 3); yield return new WaitForSeconds(0.5f); } public IEnumerator PolluteAction() { - MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0); + /*MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0); HashSet targets = new HashSet { currentNode }; - getNodeTools.getCircleNodeForBoom(targets, 1); + getNodeTools.getCircleNodeForBoom(targets, 1);*/ ClearNodes(targets); yield return new WaitForSeconds(0.5f); } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs index bd778e04..316ef8a4 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs @@ -60,7 +60,7 @@ public class StonePillar : Enemy Debug.Log("ж:" + enemyAction); switch (enemyAction) { - case EnemyAction_ShootAndPollute: + case EnemyAction_Pollution: yield return StartCoroutine(PolluteAction()); break; } @@ -71,7 +71,7 @@ public class StonePillar : Enemy { switch (enemyNode.currentActionScript) { - case EnemyAction_ShootAndPollute: + case EnemyAction_Pollution: canMove = false; canAttack = false; canAoe = true; @@ -80,14 +80,29 @@ public class StonePillar : Enemy } - + public override void GetAimTarget() + { + if (targets != null) + { + targets.Clear(); + } + switch (enemyNode.currentActionScript) + { + case EnemyAction_Pollution: + MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0); + targets = new HashSet { currentNode }; + getNodeTools.getCircleNodeForBoom(targets, 1); + break; + } + Debug.Log("targets" + targets.Count); + } public IEnumerator PolluteAction() { - MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0); + /*MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0); HashSet targets = new HashSet { currentNode }; - getNodeTools.getCircleNodeForBoom(targets, 1); + getNodeTools.getCircleNodeForBoom(targets, 1);*/ PolluteNodes(targets,Name.NodeColor.Black); yield return new WaitForSeconds(0.5f); } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs index f83254ff..5e274d88 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs @@ -81,6 +81,10 @@ public class EnemyAction { mapNode.markInfluenced = false; } + foreach (var mapNode in enemyNode.enemy.targets) + { + mapNode.markInfluenced = false; + } } public virtual void FadeAttackRangeAll(EnemyNode enemyNode) {